getBody() Guzzle cavabı artıq yükləmiş olsa belə, axın interfeysi qaytarır. Forvard proxy vasitəsilə artımlı şəbəkə çatdırılması tələb etmək üçün sorğuda stream təyin edin:

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

Bu, mövcud klientdən istifadə edir; ictimai HTTP son nöqtəsi üçün HTTP proxy siyahısından ünvan seçin və nümunədəki proxy URL-ni əvəz edin. Axın dəstəyi onun handler-indən asılıdır; yalnız axın interfeysi handler-in bədəni artımlı çatdırdığını deyə bilməz.

Cavab gəldikdən sonra məhdud hissələri oxumağa davam edin. $body-ü sətrə çevirmək bütün bədəni yenidən toplayır. Sətir analizatoru şəbəkə baytları gəldiyi halda yeni sətir gözləyərkən donmuş kimi görünə bilər. Bunlar istehlak gecikmələridir, ona görə proxy-ni dəyişmək onları aradan qaldırmayacaq.

read_timeout dəstəklənən axın tətbiqi altında fərdi oxuma gözləmələrini məhdudlaşdırır. Sonsuz axına on saniyəlik ümumi ömür vermir. Taymautu, EOF və xətaları ayrıca idarə edin və emal bitdikdə və ya ləğv edildikdə bədəni bağlayın.

Əlaqəli məqalələr