1

我有问题。它使用带有 cURL 的 POST 方法处理 Web 服务。我正在尝试使用 GZIP、DEFLATE 压缩请求。如果您查看第三行,这就是它的完成方式。

     $x = curl_init("http://url");
  curl_setopt($x, CURLOPT_HTTPHEADER, array('Content-Type: text/xml'));
  **curl_setopt($x, CURLOPT_ENCODING, 'Accept-Encoding: gzip,deflate');** 
  curl_setopt($x, CURLOPT_POST, 1);
  curl_setopt($x, CURLOPT_POSTFIELDS, $inputdata);
  curl_setopt($x, CURLOPT_FOLLOWLOCATION, 0);
  curl_setopt($x, CURLOPT_RETURNTRANSFER, 1);
  $data = curl_exec($x);

我收到响应 HTTP/1.1 200 OK 日期:星期一,2012 年 10 月 22 日 16:19:23 GMT 服务器:Resin/1.11.14 内容类型:text/xml;charset=UTF-8 变化:接受编码内容编码:gzip内容长度:2088

但是,Web 服务提供商说它没有被压缩。我究竟做错了什么?

4

1 回答 1

4

设置CURLOPT_ENCODING时不需要输入完整的标头,只需将其设置为空字符串,curl 就会输入支持的编码。

curl_setopt($x, CURLOPT_ENCODING, '')
于 2012-10-23T08:18:08.333 回答