getBody() ສົ່ງຄືນອິນເຕີເຟສ stream ເຖິງແມ່ນວ່າ Guzzle ໄດ້ດາວໂຫລດຄຳຕອບແລ້ວ. ເພື່ອຂໍການສົ່ງເຄືອຂ່າຍເປັນຂັ້ນຕອນຜ່ານ 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 ແລະ ປ່ຽນ URL proxy ຕົວຢ່າງ. ການສະໜັບສະໜູນ streaming ຂຶ້ນກັບ handler ຂອງມັນ; ອິນເຕີເຟສ stream ຢ່າງດຽວບໍ່ສາມາດບອກທ່ານໄດ້ວ່າ handler ສົ່ງ body ເປັນຂັ້ນຕອນຫຼືບໍ່.

ເມື່ອຄຳຕອບມາຮອດ, ສືບຕໍ່ອ່ານສ່ວນທີ່ຈຳກັດ. ການປ່ຽນ $body ເປັນ string ຈະເກັບ body ທັງໝົດຄືນອີກ. ຕົວແຍກແຖວອາດເບິ່ງຄືຄ້າງຂະນະລໍຖ້າແຖວໃໝ່ ເຖິງແມ່ນວ່າ byte ເຄືອຂ່າຍມາຮອດແລ້ວ. ນີ້ແມ່ນຄວາມຊັກຊ້າຂອງການບໍລິໂພກ, ດັ່ງນັ້ນການປ່ຽນ proxy ຈະບໍ່ກຳຈັດມັນ.

read_timeout ຈຳກັດການລໍຖ້າອ່ານແຕ່ລະຄັ້ງພາຍໃຕ້ການຈັດຕັ້ງ stream ທີ່ຮອງຮັບ. ມັນບໍ່ໃຫ້ feed ທີ່ບໍ່ມີທີ່ສິ້ນສຸດມີອາຍຸລວມສິບວິນາທີ. ຈັດການ timeout, EOF ແລະ ຂໍ້ຜິດພາດແຍກຕ່າງຫາກ, ແລະ ປິດ body ເມື່ອການປະມວນຜົນສິ້ນສຸດ ຫຼື ຖືກຍົກເລີກ.

ບົດຄວາມທີ່ກ່ຽວຂ້ອງ