【问题标题】:GZIP Deflate with CURL(PHP) web service issueGZIP Deflate 与 CURL(PHP) Web 服务问题
【发布时间】:2012-10-12 14:36:37
【问题描述】:

我遇到了问题。它使用带有 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

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

【问题讨论】:

    标签: xml web-services post curl


    【解决方案1】:

    设置CURLOPT_ENCODING时不需要放入完整的header,设置为空字符串即可,curl会放入支持的编码。

    curl_setopt($x, CURLOPT_ENCODING, '')
    

    【讨论】:

    • 谢谢ninaj,根据文档,这似乎是正确的。我将按照您展示的方式实施它并让您知道结果。谢谢。
    • 像个符咒一样工作,比定义编码类型更好,留空就好了,看起来更有效
    猜你喜欢
    • 2023-03-14
    • 1970-01-01
    • 2022-01-19
    • 1970-01-01
    • 2010-12-24
    • 1970-01-01
    • 2011-12-01
    • 2011-04-22
    • 1970-01-01
    相关资源
    最近更新 更多