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!