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 اور غلطیوں کو الگ الگ سنبھالیں، اور پروسیسنگ ختم یا منسوخ ہونے پر باڈی بند کریں۔

متعلقہ مضامین