getBody() yn dychwelyd rhyngwyneb llif hyd yn oed pan fydd Guzzle eisoes wedi llwytho'r ymateb i lawr. I ofyn am ddanfoniad rhwydwaith cynyddol drwy geiliog blaen, gosodwch stream ar y cais:

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

Mae hyn yn defnyddio cleient sy'n bodoli eisoes; ar gyfer pen-i-ben HTTP cyhoeddus, dewiswch gyfeiriad o'r rhestr procsïau HTTP a disodli URL y procsïyn enghreifftiol. Mae cymorth ffrydio yn dibynnu ar ei driniwr; ni all y rhyngwyneb llif ar ei ben ei hun ddweud wrthych a yw'r triniwr wedi danfon y corff yn gynyddol.

Unwaith y bydd yr ymateb yn cyrraedd, parhewch i ddarllen dognau cyfyngedig. Mae trosi $body yn llinyn yn casglu'r corff cyfan eto. Gall parser llinellau hefyd ymddangos yn hongian wrth aros am linell newydd, er bod beitiau'r rhwydwaith wedi cyrraedd. Oedi defnydd yw'r rhain, felly ni fydd newid y procsïyn yn eu dileu.

read_timeout yn cyfyngu arosiadau darllen unigol o dan y gweithrediad llif a gefnogir. Nid yw'n rhoi oes gyfan o ddeg eiliad i ffrwd diddiwedd. Trin goramser, EOF a gwallau ar wahân, a chau'r corff pan fydd prosesu'n gorffen neu'n cael ei ganslo.

Erthyglau cysylltiedig