Rumah >pembangunan bahagian belakang >tutorial php >Permintaan HTTP dan pemprosesan tindak balas dalam PHP

Permintaan HTTP dan pemprosesan tindak balas dalam PHP

WBOY
WBOYasal
2023-05-23 11:40:511796semak imbas

PHP ialah bahasa skrip yang biasa digunakan untuk pembangunan web. Dalam pembangunan web, protokol HTTP adalah bahagian penting. Untuk pembangun PHP, mengetahui cara menghantar permintaan HTTP dan mengendalikan respons HTTP adalah salah satu kemahiran yang diperlukan. Dalam artikel ini, kami akan membincangkan permintaan HTTP dan pengendalian respons dalam PHP.

  1. Hantar permintaan HTTP

Dalam PHP, anda boleh menggunakan curl atau file_get_contents untuk menghantar permintaan HTTP.

1.1 curl

curl ialah alat sumber terbuka untuk menghantar data dan menyokong berbilang protokol. Dalam PHP, anda boleh menggunakan perpustakaan curl untuk menghantar permintaan HTTP. Berikut ialah contoh curl menghantar permintaan HTTP GET:

$url = 'http://example.com/api/get_user_info?user_id=123'; // 请求地址
$ch = curl_init(); // 初始化curl对象
curl_setopt($ch, CURLOPT_URL, $url); // 设置请求地址
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // 执行curl_exec后不直接输出结果,而是返回给变量
curl_setopt($ch, CURLOPT_TIMEOUT, 10); // 设置超时时间为10秒
$result = curl_exec($ch); // 执行请求,获取结果
curl_close($ch); // 关闭curl对象

Dalam kod di atas, objek curl dicipta melalui curl_init(), parameter seperti alamat permintaan dan masa tamat masa ditetapkan dan akhirnya curl_exec () digunakan untuk menghantar permintaan dan mendapatkan hasil. Jika anda perlu menghantar permintaan POST, anda perlu menetapkan parameter CURLOPT_POST dan tetapkan parameter CURLOPT_POSTFIELDS untuk lulus parameter permintaan POST.

1.2 file_get_contents

file_get_contents ialah fungsi yang disediakan oleh PHP yang boleh mendapatkan kandungan fail tertentu. Apabila fail yang kami tentukan ialah URL, kami boleh menggunakan fungsi ini untuk menghantar permintaan HTTP. Berikut ialah contoh file_get_contents menghantar permintaan HTTP GET:

$url = 'http://example.com/api/get_user_info?user_id=123'; // 请求地址
$context = stream_context_create(array('http' => array('timeout' => 10))); // 设置请求超时时间为10秒
$response = file_get_contents($url, false, $context); // 发送请求,获取结果

Dalam kod di atas, aliran konteks dicipta melalui fungsi stream_context_create(), yang menetapkan tamat masa untuk permintaan HTTP. Kemudian gunakan fungsi file_get_contents() untuk menghantar permintaan HTTP dan mendapatkan hasil respons.

  1. Memproses Respons HTTP

Selepas menghantar permintaan HTTP, kami perlu memproses respons. Respons HTTP merangkumi dua bahagian: pengepala respons dan badan respons. Pengepala respons mengandungi beberapa maklumat metadata yang dikembalikan oleh pelayan, seperti kod respons, masa tindak balas, jenis respons, dsb. Badan tindak balas ialah kandungan pulangan khusus.

2.1 Memproses pengepala respons

Dalam PHP, anda boleh menggunakan fungsi get_headers() untuk mendapatkan pengepala respons HTTP. Berikut ialah contoh menggunakan fungsi get_headers() untuk mendapatkan pengepala respons:

$url = "http://example.com"; // 请求地址
$headers = get_headers($url, 1); // 获取HTTP响应头
print_r($headers); // 输出响应头

Dalam kod di atas, fungsi get_headers() digunakan untuk mendapatkan pengepala respons HTTP bagi alamat permintaan, simpan hasilnya dalam pembolehubah $headers, dan keluarkan pembolehubah .

2.2 Memproses badan tindak balas

Dalam PHP, anda boleh menggunakan fungsi curl atau file_get_contents untuk mendapatkan badan respons HTTP.

2.2.1 curl

Proses menggunakan curl untuk mendapatkan badan respons HTTP adalah serupa dengan menghantar permintaan HTTP Hanya tetapkan parameter CURLOPT_RETURNTRANSFER kepada 1. Berikut ialah contoh menggunakan curl untuk mendapatkan badan respons HTTP:

$url = 'http://example.com/'; // 请求地址
$ch = curl_init(); // 初始化curl对象
curl_setopt($ch, CURLOPT_URL, $url); // 设置请求地址
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // 执行curl_exec后不直接输出结果,而是返回给变量
curl_setopt($ch, CURLOPT_TIMEOUT, 10); // 设置超时时间为10秒
$response = curl_exec($ch); // 执行请求,获取结果
curl_close($ch); // 关闭curl对象

Dalam kod di atas, curl digunakan untuk mendapatkan badan respons HTTP alamat permintaan, dan hasilnya disimpan dalam pembolehubah $ tindak balas.

2.2.2 file_get_contents

Menggunakan fungsi file_get_contents untuk mendapatkan badan respons HTTP adalah serupa dengan semasa menghantar permintaan HTTP Anda hanya perlu menggunakan alamat permintaan secara langsung sebagai parameter fungsi . Berikut ialah contoh menggunakan fungsi file_get_contents untuk mendapatkan badan respons HTTP:

$url = 'http://example.com/'; // 请求地址
$context = stream_context_create(array('http' => array('timeout' => 10))); // 设置请求超时时间为10秒
$response = file_get_contents($url, false, $context); // 发送请求,获取结果

Dalam kod di atas, fungsi file_get_contents() digunakan untuk mendapatkan badan respons HTTP bagi alamat permintaan, dan hasilnya disimpan dalam pembolehubah $respons.

Ringkasan:

Protokol HTTP ialah bahagian penting dalam pembangunan web. Dalam PHP, anda boleh menggunakan fungsi curl atau file_get_contents untuk menghantar permintaan HTTP dan mendapatkan hasil respons. Setelah hasil respons HTTP diperoleh, anda boleh menggunakan fungsi get_headers() untuk mendapatkan pengepala respons dan fungsi curl atau file_get_contents untuk mendapatkan badan respons. Kemahiran dalam permintaan HTTP dan pemprosesan tindak balas adalah kemahiran yang diperlukan untuk pembangunan PHP.

Atas ialah kandungan terperinci Permintaan HTTP dan pemprosesan tindak balas dalam PHP. 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