getBody() vrací rozhraní proudu, i když Guzzle už odpověď stáhl. Chcete-li požádat o přírůstkové síťové doručení přes dopředný proxy, nastavte stream v požadavku:

$response = $client->request('GET', 'https://example.com/stream', [
    'proxy' => 'http://proxy.example:8080',
    'stream' => true,
    'read_timeout' => 10,
]);
$body = $response->getBody();

Používá existujícího klienta; pro veřejný koncový bod HTTP vyberte adresu ze seznamu HTTP proxy a nahraďte ukázkovou URL proxy. Podpora streamování závisí na jeho handleru; samotné rozhraní proudu vám neřekne, zda handler doručil tělo přírůstkově.

Jakmile odpověď dorazí, čtěte dál omezené části. Převod $body na řetězec znovu shromáždí celé tělo. Parser řádků také může vypadat zaseknutý při čekání na nový řádek, i když síťové bajty dorazily. Jsou to zpoždění spotřeby, takže změna proxy je neodstraní.

read_timeout omezuje jednotlivá čekání na čtení v rámci podporované implementace proudu. Nedává nekonečnému feedu celkovou životnost deset sekund. Zpracovávejte časový limit, EOF a chyby odděleně a zavřete tělo, když zpracování skončí nebo je zrušeno.

Související články