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 және қателерді бөлек өңдеп, өңдеу аяқталғанда немесе тоқтатылғанда денені жабыңыз.

Қатысты мақалалар