2015-03-19 4 views
2

У меня есть приложение PHP, которое использует Guzzle для создания HTTP-запросов.cURL: [P] roblem (2) в закодированных закодированных данных

Я получаю следующее исключение:

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

Похоже, проблема с завитком. Я попытался скомпилировать последнюю версию 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 

ответ

1

Это звучит earliy знакомы с вопросами, упомянутыми Майкл Даулинг (жрать создатель) на своем блоге о Chunked Transfer Encoding in PHP with Guzzle.

Чтобы ответить на вопрос о том, «как это исправить» ваши варианты могут быть:

  1. изменить настройки веб-службы (может или не может быть осуществимо); и/или
  2. измените свой объект запроса.

Без кода, отображающего, как ваш клиент и запрашивает объекты или ваш «зависание», я просто буду спекулировать.

+1

Ссылка 404 сейчас, –

+0

Рабочая ссылка: https://phpnews.io/feeditem/chunked-transfer-encoding-in-php-with-guzzle – giorgiosironi

2

У меня был similir probem и решил его с помощью http/1.0, это очень странно, но похоже, что что-то не так в libcurl или curl php module, и жужжание терпит неудачу в постпроцессе ответа.

I wrote a post here describing the thing

7

Такая же проблема, решена путем обновления до curl к 7.36 (по какой-то причине APT-получить установку не обновлялись от 14 августа 2015)

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

Curl решение 6+

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

В основном сила http 1.0 по причинам.

+0

Спасибо, что исправил ее для 7.36 тоже –