bug #38388 [HttpClient] Always "buffer" empty responses (nicolas-grekas)

This PR was merged into the 4.4 branch.

Discussion
----------

[HttpClient] Always "buffer" empty responses

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | -
| License       | MIT
| Doc PR        | -

Commits
-------

03d60fce47 [HttpClient] Always "buffer" empty responses
This commit is contained in:
Nicolas Grekas 2020-10-02 15:47:43 +02:00
commit b3a20e4065
1 changed files with 10 additions and 8 deletions

View File

@ -115,15 +115,13 @@ trait ResponseTrait
return $content;
}
if ('HEAD' === $this->info['http_method'] || \in_array($this->info['http_code'], [204, 304], true)) {
return '';
if (null === $this->content) {
throw new TransportException('Cannot get the content of the response twice: buffering is disabled.');
}
} else {
foreach (self::stream([$this]) as $chunk) {
// Chunks are buffered in $this->content already
}
throw new TransportException('Cannot get the content of the response twice: buffering is disabled.');
}
foreach (self::stream([$this]) as $chunk) {
// Chunks are buffered in $this->content already
}
rewind($this->content);
@ -376,6 +374,10 @@ trait ResponseTrait
$chunk = new ErrorChunk($response->offset, $e);
} else {
if (0 === $response->offset && null === $response->content) {
$response->content = fopen('php://memory', 'w+');
}
$chunk = new LastChunk($response->offset);
}
} elseif ($chunk instanceof ErrorChunk) {