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 එක නැවත එකතු කරයි. ජාල bytes ලැබී තිබියදීත් නව පේළියක් බලා සිටින විට line parser එක එල්ලී ඇති ලෙස පෙනිය හැක. මේවා පරිභෝජන ප්‍රමාදයන් වන බැවින් proxy මාරු කිරීමෙන් ඒවා ඉවත් නොවේ.

read_timeout සහාය දක්වන stream ක්‍රියාත්මක කිරීම යටතේ තනි කියවීම් බලා සිටීම් සීමා කරයි. එය අසීමිත feed එකකට තත්පර දහයක සම්පූර්ණ ආයු කාලයක් ලබා නොදේ. Timeout, EOF සහ දෝෂ වෙන වෙනම හසුරුවා, සැකසීම අවසන් වූ විට හෝ අවලංගු වූ විට body එක වසන්න.

අදාළ ලිපි