getBody() tagastab voo liidese ka siis, kui Guzzle on vastuse juba alla laadinud. Edastusproxy kaudu järkjärgulise võrgu kohaletoimetamise taotlemiseks määrake päringul stream:

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

See kasutab olemasolevat klienti; avaliku HTTP-lõpp-punkti jaoks valige aadress HTTP-proxy loendist ja asendage näidise proxy URL. Voogedastuse tugi sõltub selle töötlejast; ainult voo liides ei saa teile öelda, kas töötleja toimetas keha järkjärguliselt.

Kui vastus saabub, jätkake piiratud osade lugemist. $body stringiks teisendamine kogub uuesti kogu keha. Rea parser võib samuti tunduda hangunud, oodates uut rida, kuigi võrgubaidid on saabunud. Need on tarbimise viivitused, seega proxy vahetamine ei kõrvalda neid.

read_timeout piirab üksikuid lugemisootusi toetatud voo juurutuses. See ei anna lõputule voolule kümnesekundilist kogu eluiga. Käsitlege ajalõppu, EOF-i ja vigu eraldi ning sulgege keha, kui töötlemine lõpeb või tühistatakse.

Seotud artiklid