New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ChunkedBody decoding with Curl Adapter #19

Open
necromant2005 opened this Issue Aug 27, 2015 · 6 comments

Comments

Projects
None yet
3 participants
@necromant2005
Copy link

necromant2005 commented Aug 27, 2015

Zend\Http\Response::decodeChunkedBody fail with exception when curl adapter decode body itself , BUT it still has "Transfer-Encoding: encoded" header

$client = new \Zend\Http\Client();
$client->setOptions(array( 
   'sslverifypeer' => false,
   'adapter'         => 'Zend\Http\Client\Adapter\Curl',
));
$client->setUri('https://www.truesocialmetrics.com/');
$response = $client->send(); // Error parsing body - doesn't seem to be a chunked message

php: 5.5 , 5.6, 7

@zerocrates

This comment has been minimized.

Copy link
Contributor

zerocrates commented Sep 14, 2015

It looks like you're leaving off the $response->getBody() call that would actually cause the exception.

At any rate, in this case, it looks like the problem is that the server you're talking to sends the header in lowercase: transfer-encoding: chunked, while the code in the curl adapter that's supposed to deal with this (line 437) only looks for the uppercase version.

Header names are case-insensitive by definition, and the values for Transfer-Encoding are also case-insensitive, so just adding the i case-insensitivity flag to the regex being used here is probably a reasonable solution.

@zerocrates

This comment has been minimized.

Copy link
Contributor

zerocrates commented Sep 14, 2015

This would be fixed by the open PR #10, and this issue serves as an example of the kind of bug that currently happens and that PR would fix.

Specifically, this looks like a regression introduced by ddf5a83: the comparisons were case-sensitive at that point, and when adding support for varying whitespace, the insensitivity was accidentally not applied to the new regex version of the code.

@sgehrig

This comment has been minimized.

Copy link
Contributor

sgehrig commented May 3, 2016

Any idea when this would be fixed?

@necromant2005

This comment has been minimized.

Copy link
Author

necromant2005 commented May 3, 2016

Nope. I've patched zend to solve this issue.

@sgehrig

This comment has been minimized.

Copy link
Contributor

sgehrig commented May 3, 2016

Who is the current maintainer of Zend\Http?

@necromant2005

This comment has been minimized.

Copy link
Author

necromant2005 commented May 3, 2016

I suppose that's @weierophinney

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment