getBody() ay nagbabalik ng stream interface kahit na na-download na ng Guzzle ang tugon. Para humiling ng incremental na paghahatid ng network sa pamamagitan ng forward proxy, itakda ang stream sa kahilingan:

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

Gumagamit ito ng umiiral na client; para sa pampublikong HTTP endpoint, pumili ng address mula sa listahan ng HTTP proxy at palitan ang halimbawang proxy URL. Ang suporta sa streaming ay nakadepende sa handler nito; ang stream interface lamang ay hindi makapagsasabi kung ang handler ay naghatid ng body nang incremental.

Kapag dumating ang tugon, magpatuloy sa pagbasa ng limitadong bahagi. Ang pag-convert ng $body sa string ay muling nangongolekta ng buong body. Ang line parser ay maaari ring magmukhang nakabitin habang naghihintay ng bagong linya, kahit na dumating na ang mga byte ng network. Ito ay mga pagkaantala sa pagkonsumo, kaya ang pagpalit ng proxy ay hindi mag-aalis ng mga ito.

read_timeout ay naglilimita sa indibidwal na paghihintay sa pagbasa sa ilalim ng sinusuportahang pagpapatupad ng stream. Hindi nito binibigyan ang walang katapusang feed ng kabuuang sampung segundong buhay. Pangasiwaan nang hiwalay ang timeout, EOF at mga error, at isara ang body kapag natapos o nakansela ang pagproseso.

Kaugnay na mga artikulo