getBody() returnerer et stream-grensesnitt selv når Guzzle allerede har lastet ned svaret. For å be om inkrementell nettverkslevering gjennom en forward-proxy, sett stream på forespørselen:

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

Dette bruker en eksisterende klient; for et offentlig HTTP-endepunkt, velg en adresse fra HTTP-proxy-listen og erstatt eksempel-proxy-URL-en. Streamingstøtte avhenger av handleren; stream-grensesnittet alene kan ikke fortelle deg om handleren leverte bodyen inkrementelt.

Når svaret ankommer, fortsett å lese begrensede deler. Konvertering av $body til en streng samler hele bodyen igjen. En linjeparser kan også se ut til å henge mens den venter på en ny linje, selv om nettverksbytes har ankommet. Dette er forbruksforsinkelser, så et bytte av proxy fjerner dem ikke.

read_timeout begrenser individuelle lesevekter under den støttede stream-implementasjonen. Det gir ikke en endeløs feed en total levetid på ti sekunder. Håndter timeout, EOF og feil separat, og lukk bodyen når behandlingen avsluttes eller avbrytes.

Relaterte artikler