cURL:[Chunked-Encoded数据中的问题(2)

时间:2015-03-19 13:55:26

标签: curl guzzle php-curl

我有一个使用Guzzle发出HTTP请求的PHP应用程序。

我遇到以下异常:

[curl] 56: Problem (2) in the Chunked-Encoded data [url] http://...

看起来问题出在cURL上。我试图从源代码编译最新版本的cURL,但看起来它没有帮助。

可能是什么问题以及如何解决?


$ curl --version
curl 7.41.0 (i686-pc-linux-gnu) libcurl/7.35.0 OpenSSL/1.0.1f zlib/1.2.8 libidn/1.28 librtmp/2.3
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtmp rtsp smtp smtps telnet tftp 
Features: AsynchDNS IDN IPv6 Largefile NTLM NTLM_WB SSL libz TLS-SRP

$ cat /etc/issue
Ubuntu 14.04.2 LTS \n \l

$ composer show -i

guzzle/guzzle                       v3.9.2             Guzzle is a PHP HTTP client library and framework for building RESTful web service clients
misd/guzzle-bundle                  v1.1.5             Integrates Guzzle into your Symfony2 application

$ apt-cache policy php5-curl

php5-curl:
  Installed: 5.5.9+dfsg-1ubuntu4.6
  Candidate: 5.5.9+dfsg-1ubuntu4.6

4 个答案:

答案 0 :(得分:7)

同样的问题,通过升级到curl7.36解决了(由于某些原因,截至2015年8月14日apt-get install没有更新)

$ sudo add-apt-repository ppa:costamagnagianfranco/ettercap-stable-backports
$ sudo apt-get update
$ sudo apt-get install curl

答案 1 :(得分:2)

我有一个similir probem并使用http / 1.0解决它这是一个非常奇怪的事情,但它看起来像libcurl或curl php模块中的错误,并且在响应的后处理中guzzle失败。 / p>

I wrote a post here describing the thing

答案 2 :(得分:2)

Curl 6+解决方案

(new Client)->post(http://post.com, [
    'multipart' => $post,
    'curl'        => [
        CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_0,
    ],
]);

基本上强制http 1.0因为原因。

答案 3 :(得分:1)

这听起来很熟悉Michael Dowling(Guzzle创作者)在他的博客Chunked Transfer Encoding in PHP with Guzzle上提到的问题。

要回答"我该如何修复它的问题"您的选择可以是:

  1. 修改Web服务的设置(可能是也可能不可行);和/或
  2. 修改您的请求对象。
  3. 没有代码显示您的客户和请求对象或您的卷曲"如何调用"我只想猜测。