Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Mendapatkan Kembali Badan Respons dengan Cekap dalam Guzzle 6?

Bagaimana untuk Mendapatkan Kembali Badan Respons dengan Cekap dalam Guzzle 6?

Barbara Streisand
Barbara Streisandasal
2024-11-28 13:54:14697semak imbas

How to Efficiently Retrieve the Response Body in Guzzle 6?

Dapatkan Badan daripada Respons dalam Guzzle 6

Apabila bekerja dengan Guzzle, badan respons disimpan dalam strim. Untuk mendapatkannya semula, terdapat dua pendekatan biasa.

Menggunakan Operator Penghantaran PHP


$kandungan = (rentetan) $respons-> getBody();

Operasi ini akan membaca semua data dari awal aliran hingga akhir. Panggilan seterusnya ke getBody()->getContents() akan mengembalikan rentetan kosong.

Menggunakan getBody()->getContents()

$contents = $response->getBody()->getContents();

Dengan getContents(), ia hanya mengembalikan baki kandungan strim. Jika anda memanggilnya dua kali tanpa mencari kedudukan menggunakan rewind() atau seek(), ia akan mengembalikan rentetan kosong.

Contoh

Menggunakan (rentetan):

$contents = (string) $response->getBody();
echo $contents; // Prints entire response body
$contents = (string) $response->getBody();
echo $contents; // Empty string, as data has already been consumed

Menggunakan getContents():

$stream = $response->getBody();
$contents = $stream->getContents(); // Prints entire response body
$contents = $stream->getContents(); // Empty string, as data has not been reset
$stream->rewind(); // Reset stream
$contents = $stream->getContents(); // Prints entire response body

Kesimpulan

Kedua-dua pendekatan mendapatkan semula badan tindak balas. Pilih kaedah berdasarkan keperluan khusus anda, seperti sama ada anda perlu membaca data sekali atau beberapa kali sahaja.

Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Kembali Badan Respons dengan Cekap dalam Guzzle 6?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn