gpt4 book ai didi

php - GuzzleHttp 使用 gzip 发送压缩请求

转载 作者:行者123 更新时间:2023-12-05 07:53:18 25 4
gpt4 key购买 nike

我将 GuzzleHttp 与 API REST 结合使用。我的参数在

$url_complete = 'http://apirest.com/?'.$params;
$request = $client->post(
$url_complete,
);

当我搜索解决方案时,我只获得 EntityBody 对象的解决方案 ( http://guzzle3.readthedocs.org/http-client/entity-bodies.html )。但 EntityBody 是 API 的响应。我不需要读取必须发送的压缩数据。

您知道使用 GuzzleHttp 将压缩(使用 gzip)数据发送到 API REST 的方法吗?

最佳答案

引用 Ref#1:

Entity body is the term used for the body of an HTTP message. The entity body of requests and responses is inherently a PHP stream in Guzzle.

这意味着 EntityBody 对象可以用于 HTTP 请求和响应。

Client::post() 的方法签名是 post($uri = null, $headers = null, $postBody = null, array $options = array())。 正如您的代码片段中所见,您没有设置发布请求的正文。事实上,您所做的只是设置一些 uri 查询参数。

根据引用 #2、#3 和 #4:您可能想要执行以下操作:

$body = EntityBody::factory(fopen($file_location));
$body->compress(); //compresses the body using the deflate php stream filter

$request = $client->post($uri, $headers, $body, $options);

$response = $client->send($request);

我应该声明我从未真正这样做过,在过去 1.5 年的大部分时间里我一直在使用 v4+,但我目前无法对此进行测试。

引用资料:

  1. Entity Bodies
  2. Entity Bodies - Compression
  3. Using Request Objects - POST Requests
  4. Guzzle 3 - Client.php

关于php - GuzzleHttp 使用 gzip 发送压缩请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32720414/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com