Għaliex stream tal-ġisem ta' Guzzle xorta jista' jiġi mbufferjat
L-interface tal-ġisem, il-kunsinna tat-trasport u l-parser tiegħek stess jistgħu jbuffraw b'mod indipendenti. Uża stream b'mod espliċitu u żomm il-konsum inkrementali.
getBody() jirritorna interface ta' stream anke meta Guzzle ikun diġà niżżel ir-risposta. Biex titlob kunsinna tan-netwerk inkrementali permezz ta' proxy forward, issettja stream fuq it-talba:
$response = $client->request('GET', 'https://example.com/stream', [
'proxy' => 'http://proxy.example:8080',
'stream' => true,
'read_timeout' => 10,
]);
$body = $response->getBody();
Dan juża klijent eżistenti; għal endpoint HTTP pubbliku, agħżel indirizz mill-lista tal-proxy HTTP u ibdel l-URL tal-proxy tal-eżempju. L-appoġġ tal-istreaming jiddependi mill-handler tiegħu; l-interface tal-stream waħedha ma tistax tgħidlek jekk il-handler kunsinax il-ġisem b'mod inkrementali.
Ladarba tasal ir-risposta, kompli aqra porzjonijiet limitati. Il-konverżjoni ta' $body għal string tiġbor mill-ġdid il-ġisem kollu. Parser tal-linji jista' wkoll jidher imdendel waqt li jistenna linja ġdida, anke jekk il-bytes tan-netwerk waslu. Dawn huma dewmien fil-konsum, għalhekk it-tibdil tal-proxy mhux se jneħħihom.
read_timeout jillimita stennijiet ta' qari individwali taħt l-implimentazzjoni tal-stream appoġġjata. Ma jagħtix feed bla tmiem għomor totali ta' għaxar sekondi. Immaniġġja timeout, EOF u żbalji separatament, u agħlaq il-ġisem meta l-ipproċessar jintemm jew jiġi kkanċellat.