getBody() gee 'n stroominterface terug selfs wanneer Guzzle die antwoord reeds afgelaai het. Om inkrementele netwerkaflewering deur 'n vorentoe-proxy te versoek, stel stream op die versoek:

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

Dit gebruik 'n bestaande kliënt; vir 'n openbare HTTP-eindpunt, kies 'n adres uit die HTTP-proxylys en vervang die voorbeeld-proxy-URL. Stroomondersteuning hang van die handler af; die stroominterface alleen kan jou nie sê of die handler die liggaam inkrementeel afgelewer het nie.

Sodra die antwoord aankom, hou aan om begrensde dele te lees. Om $body na 'n string om te skakel, versamel die hele liggaam weer. 'n Reëlontleder kan ook lyk of dit hang terwyl dit op 'n nuwe reël wag, selfs al het netwerkgrepe aangekom. Dit is verbruikvertragings, dus verandering van die proxy sal dit nie verwyder nie.

read_timeout beperk individuele leeswagtings onder die ondersteunde stroomimplementering. Dit gee nie aan 'n eindelose voer 'n totale leeftyd van tien sekondes nie. Hanteer tydsverloop, EOF en foute afsonderlik, en sluit die liggaam wanneer verwerking eindig of gekanselleer word.

Verwante artikels