getBody() Guzzle ఇప్పటికే ప్రతిస్పందనను డౌన్లోడ్ చేసినప్పటికీ స్ట్రీమ్ ఇంటర్ఫేస్ను తిరిగి ఇస్తుంది. ఫార్వర్డ్ ప్రాక్సీ ద్వారా క్రమంగా నెట్వర్క్ డెలివరీని అభ్యర్థించడానికి, అభ్యర్థనపై stream సెట్ చేయండి:

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

ఇది ఇప్పటికే ఉన్న క్లయింట్ను ఉపయోగిస్తుంది; పబ్లిక్ HTTP ఎండ్పాయింట్ కోసం, HTTP ప్రాక్సీ జాబితా నుండి చిరునామాను ఎంచుకుని ఉదాహరణ ప్రాక్సీ URLను భర్తీ చేయండి. స్ట్రీమింగ్ మద్దతు దాని హ్యాండ్లర్పై ఆధారపడి ఉంటుంది; స్ట్రీమ్ ఇంటర్ఫేస్ మాత్రమే హ్యాండ్లర్ బాడీని క్రమంగా అందించిందో లేదో చెప్పలేదు.

ప్రతిస్పందన వచ్చిన తర్వాత, పరిమిత భాగాలను చదవడం కొనసాగించండి. $body ను స్ట్రింగ్గా మార్చడం మొత్తం బాడీని మళ్లీ సేకరిస్తుంది. నెట్వర్క్ బైట్లు వచ్చినప్పటికీ కొత్త లైన్ కోసం వేచి ఉన్నప్పుడు లైన్ పార్సర్ నిలిచిపోయినట్లు కనిపించవచ్చు. ఇవి వినియోగ ఆలస్యాలు, కాబట్టి ప్రాక్సీ మార్చడం వాటిని తొలగించదు.

read_timeout మద్దతు ఉన్న స్ట్రీమ్ అమలు కింద వ్యక్తిగత పఠన నిరీక్షణలను పరిమితం చేస్తుంది. ఇది అనంతమైన ఫీడ్కు పది సెకన్ల మొత్తం ఆయుష్షును ఇవ్వదు. టైమ్అవుట్, EOF మరియు లోపాలను విడివిడిగా నిర్వహించి, ప్రాసెసింగ్ ముగిసినప్పుడు లేదా రద్దు చేయబడినప్పుడు బాడీని మూసివేయండి.

సంబంధిత వ్యాసాలు