我有一个使用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
答案 0 :(得分:7)
同样的问题,通过升级到curl
到7.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>
答案 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上提到的问题。
要回答"我该如何修复它的问题"您的选择可以是:
没有代码显示您的客户和请求对象或您的卷曲"如何调用"我只想猜测。