我使用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的方法?
答案 0 :(得分:0)
引用参考文献1:
实体主体是用于HTTP消息正文的术语。请求和响应的实体主体本质上是Guzzle中的PHP流。
这意味着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 +而且我目前无法对此进行测试。
参考文献: