getBody() Guzzle ஏற்கனவே பதிலைப் பதிவிறக்கியிருந்தாலும் stream interface-ஐத் திருப்பித் தருகிறது. forward proxy வழியாக படிப்படியான நெட்வொர்க் வழங்கலைக் கோர, கோரிக்கையில் stream அமைக்கவும்:

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

இது ஏற்கனவே உள்ள client-ஐப் பயன்படுத்துகிறது; பொது HTTP endpoint-க்கு, HTTP proxy பட்டியலில் இருந்து முகவரியைத் தேர்ந்தெடுத்து எடுத்துக்காட்டு proxy URL-ஐ மாற்றவும். Streaming ஆதரவு அதன் handler-ஐப் பொறுத்தது; stream interface மட்டும் handler body-ஐ படிப்படியாக வழங்கியதா என்பதைச் சொல்ல முடியாது.

பதில் வந்ததும், வரையறுக்கப்பட்ட பகுதிகளைத் தொடர்ந்து படியுங்கள். $body-ஐ string ஆக மாற்றுவது முழு body-ஐ மீண்டும் சேகரிக்கிறது. நெட்வொர்க் பைட்டுகள் வந்திருந்தாலும், புதிய வரிக்காகக் காத்திருக்கும்போது line parser தேங்கியதுபோல் தோன்றலாம். இவை நுகர்வு தாமதங்கள், எனவே proxy-ஐ மாற்றினால் அவை நீங்காது.

read_timeout ஆதரிக்கப்படும் stream செயலாக்கத்தின் கீழ் தனிப்பட்ட வாசிப்பு காத்திருப்புகளை வரம்பிடுகிறது. இது முடிவில்லாத feed-க்கு பத்து வினாடிகள் மொத்த ஆயுளை வழங்காது. Timeout, EOF மற்றும் பிழைகளைத் தனித்தனியாகக் கையாளுங்கள், செயலாக்கம் முடிந்ததும் அல்லது ரத்து செய்யப்பட்டதும் body-ஐ மூடுங்கள்.

தொடர்புடைய கட்டுரைகள்