Membuat permintaan HTTP menggunakan PHP dan Guzzle

PHPz
Lepaskan: 2023-06-19 16:08:02
asal
3389 orang telah melayarinya

Dengan perkembangan pesat Internet, permintaan HTTP telah menjadi bahagian penting dalam pelbagai aplikasi web. Untuk pembangun PHP, Guzzle ialah perpustakaan klien HTTP yang sangat disyorkan yang boleh membantu kami memulakan permintaan HTTP, memproses respons, mengurus sesi, dsb.

Artikel ini akan memperkenalkan cara menggunakan PHP dan Guzzle untuk memulakan permintaan HTTP, membantu pembaca memahami dengan lebih baik prinsip asas dan penggunaan Guzzle.

1. Pengenalan kepada Guzzle

Guzzle ialah perpustakaan PHP yang digunakan untuk memulakan permintaan HTTP dan memproses respons. Ia direka bentuk untuk menyediakan API yang ringkas dan elegan yang boleh diperluaskan dan boleh disesuaikan dengan mudah untuk pelbagai keperluan. Guzzle menyokong protokol HTTP 1.1 untuk membantu pembangun PHP membina klien API dan perkhidmatan web dengan cepat.

2. Pasang Guzzle

Gunakan Komposer untuk memasang Guzzle dalam direktori projek Anda boleh menggunakan arahan berikut:

composer require guzzlehttp/guzzle
Salin selepas log masuk

3 🎜>

    Mulakan permintaan GET
Berikut ialah contoh mudah menggunakan Guzzle untuk memulakan permintaan GET:

use GuzzleHttpClient;

$client = new Client();

$response = $client->get('http://httpbin.org/get');

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

print_r(json_decode($body));
Salin selepas log masuk

Dalam kod di atas, kami mula-mula buat contoh Pelanggan Guzzle, dan kemudian gunakan kaedah

memulakan permintaan GET, alamat permintaan ialah get dan menghuraikan hasil respons ke dalam format JSON untuk output. http://httpbin.org/get

    Mulakan permintaan POST
Berikut ialah contoh penggunaan Guzzle untuk memulakan permintaan POST:

use GuzzleHttpClient;

$client = new Client();

$response = $client->post('http://httpbin.org/post', [
    'form_params' => [
        'username' => 'testuser',
        'password' => 'testpassword',
    ]
]);

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

print_r(json_decode($body));
Salin selepas log masuk

Dalam kod di atas, kami menggunakan kaedah

untuk memulakan Permintaan POST, alamat permintaan ialah post dan dua parameter http://httpbin.org/post dan username ditambahkan pada badan permintaan, dan akhirnya hasil respons dihuraikan dan dikeluarkan dalam format JSON. password

    Mulakan permintaan PUT
Berikut ialah contoh penggunaan Guzzle untuk memulakan permintaan PUT:

use GuzzleHttpClient;

$client = new Client();

$response = $client->put('http://httpbin.org/put', [
    'json' => [
        'name' => 'testuser',
        'age' => 18,
    ]
]);

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

print_r(json_decode($body));
Salin selepas log masuk

Dalam kod di atas, kami menggunakan kaedah

untuk memulakan Permintaan PUT, alamat permintaan ialah put dan objek JSON http://httpbin.org/put ditambahkan pada badan permintaan, dan akhirnya hasil respons dihuraikan dan dikeluarkan dalam format JSON. { "name": "testuser", "age": 18 }

    Mulakan permintaan DELETE
Berikut ialah contoh penggunaan Guzzle untuk memulakan permintaan DELETE:

use GuzzleHttpClient;

$client = new Client();

$response = $client->delete('http://httpbin.org/delete');

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

print_r(json_decode($body));
Salin selepas log masuk

Dalam kod di atas, kami menggunakan kaedah

untuk memulakan Permintaan DELETE, alamat permintaan ialah delete, dan akhirnya hasil respons dihuraikan dan dikeluarkan dalam format JSON. http://httpbin.org/delete

5. Memproses respons Guzzle

Objek Respons Guzzle menyediakan beberapa kaedah untuk mendapatkan data respons, kod status, pengepala respons dan maklumat lain. Berikut ialah beberapa contoh:

use GuzzleHttpClient;

$client = new Client();

$response = $client->get('http://httpbin.org/get');

// 获取响应体
$body = (string) $response->getBody();

// 获取响应状态码
$statusCode = $response->getStatusCode();

// 获取响应原因短语
$reasonPhrase = $response->getReasonPhrase();

// 获取响应头
$headers = $response->getHeaders();

// 获取响应内容类型
$contentType = $response->getHeaderLine('Content-Type');
Salin selepas log masuk

6. Gunakan Guzzle untuk mengurus sesi

Guzzle menyediakan kelas CookieJar yang boleh mengurus kuki dalam sesi Berikut ialah contoh:

use GuzzleHttpClient;
use GuzzleHttpCookieCookieJar;

$client = new Client([
    'cookies' => true,
]);

$cookieJar = new CookieJar();

$client->get('http://httpbin.org/cookies/set', [
    'query' => [
        'name' => 'testcookie',
        'value' => 'testvalue',
    ],
    'cookies' => $cookieJar,
]);

$client->get('http://httpbin.org/cookies', [
    'cookies' => $cookieJar,
]);

print_r($cookieJar->toArray());
Salin selepas log masuk
Dalam kod di atas, kami menggunakan

untuk mencipta contoh Pelanggan Guzzle, mendayakan fungsi pengurusan kuki automatik dalam pembina, dan kemudian mengurus kuki dengan mencipta tika CookieJar. Seterusnya, kami menggunakan $client untuk memulakan dua permintaan GET Permintaan pertama menetapkan nilai Kuki $client kepada testcookie, dan permintaan kedua mendapat maklumat Kuki dan mengeluarkannya. testvalue

7. Ringkasan

Guzzle ialah perpustakaan klien HTTP yang sangat berkuasa yang boleh membantu pembangun PHP dengan cepat dan mudah memulakan permintaan HTTP, memproses respons dan mengurus sesi. Dengan mengkaji kaedah yang diperkenalkan dalam artikel ini, saya percaya bahawa pembaca mempunyai pemahaman awal tentang prinsip asas dan penggunaan Guzzle, yang boleh digunakan dan dikembangkan dalam projek sebenar.

Atas ialah kandungan terperinci Membuat permintaan HTTP menggunakan PHP dan Guzzle. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan