Mendapatkan Kandungan Badan daripada Respons PSR-7 dalam Guzzle 6
Dalam Guzzle 6, respons mematuhi piawaian PSR-7, yang menggunakan Strim untuk menyimpan badan tindak balas. Untuk mendapatkan semula kandungan badan, seseorang mesti mendapatkan semula Strim dan seterusnya mendapatkan kandungannya.
Kaedah untuk Mendapatkan Kandungan Badan:
Menghantar ke Rentetan:
$contents = (string) $response->getBody();
getContents():
$contents = $response->getBody()->getContents();
Perbezaan antara getContents() dan Casting:
getContents() mengembalikan kandungan strim yang tinggal. Panggilan seterusnya ke getContents() akan mengembalikan rentetan kosong melainkan kedudukan strim ditetapkan semula. Penghantaran, sebaliknya, membaca semua data strim dari awal hingga akhir.
Contoh:
$stream = $response->getBody(); $contents = $stream->getContents(); // contents are retrieved $contents = $stream->getContents(); // returns empty string $stream->rewind(); // seek the stream back to the beginning $contents = $stream->getContents(); // contents are retrieved again
Menghantar ke rentetan melakukan operasi bacaan tunggal dan mengembalikan semua data daripada strim.
$contents = (string) $response->getBody(); // contents are retrieved $contents = (string) $response->getBody(); // contents are retrieved again
Dokumentasi:
Atas ialah kandungan terperinci Bagaimana Mendapatkan Kandungan Badan dengan Cekap daripada Tindak Balas Guzzle 6 PSR-7?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!