getBody() vraća interfejs toka čak i kada je Guzzle već preuzeo odgovor. Da biste zatražili inkrementalnu mrežnu isporuku kroz naprijed proxy, postavite stream na zahtjev:

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

Ovo koristi postojeći klijent; za javnu HTTP krajnju tačku odaberite adresu sa liste HTTP proxyja i zamijenite primjer URL-a proxyja. Podrška za strimovanje zavisi od njegovog handlera; samo interfejs toka ne može vam reći da li je handler isporučio tijelo inkrementalno.

Kada odgovor stigne, nastavite čitati ograničene dijelove. Pretvaranje $body u string ponovo skuplja cijelo tijelo. Parser linija također može izgledati zaglavljen dok čeka novi red, iako su mrežni bajtovi stigli. To su kašnjenja potrošnje, pa promjena proxyja neće ih ukloniti.

read_timeout ograničava pojedinačna čekanja čitanja pod podržanom implementacijom toka. Ne daje beskonačnom feedu ukupan životni vijek od deset sekundi. Rukujte timeoutom, EOF-om i greškama odvojeno, i zatvorite tijelo kada obrada završi ili bude otkazana.

Povezani članci