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 ਅਤੇ ਗਲਤੀਆਂ ਨੂੰ ਵੱਖਰੇ ਤੌਰ 'ਤੇ ਸੰਭਾਲੋ, ਅਤੇ ਪ੍ਰੋਸੈਸਿੰਗ ਖਤਮ ਹੋਣ ਜਾਂ ਰੱਦ ਹੋਣ 'ਤੇ ਬਾਡੀ ਬੰਦ ਕਰੋ।

ਸੰਬੰਧਿਤ ਲੇਖ