[HttpClient] Fix dealing with empty responses in AsyncResponse

This commit is contained in:
Nicolas Grekas 2020-10-02 16:11:08 +02:00
parent 1f7b8fdf7b
commit 993525a366

View File

@ -206,9 +206,13 @@ final class AsyncResponse implements ResponseInterface, StreamableInterface
foreach ($client->stream($wrappedResponses, $timeout) as $response => $chunk) { foreach ($client->stream($wrappedResponses, $timeout) as $response => $chunk) {
$r = $asyncMap[$response]; $r = $asyncMap[$response];
if (null === $chunk->getError() && $chunk->isFirst()) { if (null === $chunk->getError() && 0 === $r->offset) {
// Ensure no exception is thrown on destruct for the wrapped response if ($chunk->isFirst()) {
$r->response->getStatusCode(); // Ensure no exception is thrown on destruct for the wrapped response
$r->response->getStatusCode();
} elseif (null === $r->content && $chunk->isLast()) {
$r->content = fopen('php://memory', 'w+');
}
} }
if (!$r->passthru) { if (!$r->passthru) {