Rumah >pembangunan bahagian belakang >tutorial php >Bagaimanakah Saya Mengakses Badan Respons dalam Guzzle HTTP v6 untuk Mendapatkan Token API?

Bagaimanakah Saya Mengakses Badan Respons dalam Guzzle HTTP v6 untuk Mendapatkan Token API?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-02 03:17:13679semak imbas

How Do I Access the Response Body in Guzzle HTTP v6 to Retrieve API Tokens?

Cara Guzzle HTTP Membenarkan Mengakses Badan Respons dalam Versi 6

Mendapatkan semula Token API dengan PHP

Anda bertujuan untuk buat pembungkus untuk API syarikat anda. Untuk mengesahkan dengan API, anda perlu mengekstrak token daripada badan tindak balas permintaan POST. Menggunakan perpustakaan Guzzle yang popular, anda menghadapi kesukaran mengakses token dalam objek respons Guzzle.

Pelaksanaan Guzzle PSR-7

Guzzle mematuhi PSR-7 standard, yang menggunakan pembungkus strim untuk badan tindak balas. Pembalut strim ini, dilaksanakan menggunakan strim temp PHP, menyimpan data badan tindak balas.

Mengakses Badan Respons

Untuk mendapatkan badan respons penuh, anda boleh menggunakan penghantaran rentetan PHP operator:

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

Sebagai alternatif, kaedah getContents() strim boleh used:

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

Perbezaan utama antara pendekatan ini terletak pada gelagat getContents(), yang hanya mengembalikan kandungan yang tinggal selepas panggilan pertama. Panggilan berikutnya akan mengembalikan rentetan kosong melainkan kedudukan strim dilaraskan menggunakan rewind() atau seek().

Contoh Kod

 'http://companysub.dev.myapi.com/']);
$response = $client->post('api/v1/auth/', [
    'form_params' => [
        'username' => $user,
        'password' => $password
    ]
]);

// Convert response body to string and decode JSON
$contents = (string) $response->getBody();
$data = json_decode($contents, true);

// Extract token
$token = $data['data']['token'];

Setelah token diperoleh , anda boleh terus menggunakannya untuk pengesahan API.

Atas ialah kandungan terperinci Bagaimanakah Saya Mengakses Badan Respons dalam Guzzle HTTP v6 untuk Mendapatkan Token API?. 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