Apabila membangunkan aplikasi web menggunakan PHP, kita selalunya perlu menggunakan fungsi curl_exec untuk menghantar permintaan HTTP. Walau bagaimanapun, apabila menggunakan fungsi curl_exec, kadangkala beberapa mesej ralat dikembalikan, menyebabkan permintaan gagal. Mesej ralat ini mungkin termasuk ralat sambungan rangkaian, kod ralat HTTP, dsb. Artikel ini akan menganalisis dan menyelesaikan mesej ralat ini.
Ralat sambungan ialah ralat biasa yang dihadapi apabila menggunakan fungsi curl_exec. Jika ralat sambungan berlaku, mesej ralat berikut mungkin dikembalikan:
"tidak dapat menyambung ke hos", "sambungan ditolak", "operasi tamat masa"
Mesej ralat ini biasanya menunjukkan bahawa sambungan tidak sepadan dengan Pelayan atau port tidak tersedia atau rangkaian ditangguhkan. Dalam kes ini, kita perlu terlebih dahulu menyemak sama ada sambungan rangkaian adalah normal dan sama ada pelayan atau port dibuka. Jika sambungan rangkaian adalah normal dan pelayan atau port terbuka, anda boleh cuba meningkatkan masa tamat curl untuk menyelesaikan masalah sambungan tidak normal.
Berikut ialah contoh kod untuk meningkatkan tamat masa:
$ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "http://example.com"); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10); curl_setopt($ch, CURLOPT_TIMEOUT, 30); $result = curl_exec($ch); curl_close($ch);
Dalam kod di atas, CURLOPT_CONNECTTIMEOUT menetapkan tamat masa sambungan kepada 10 saat dan CURLOPT_TIMEOUT menetapkan tamat masa permintaan kepada 30 saat. Tamat masa ini memerlukan Set mengikut situasi sebenar.
Kod ralat HTTP ialah satu lagi ralat yang sering dihadapi apabila menggunakan fungsi curl_exec. Kod ralat HTTP dibahagikan kepada lima kategori: 1xx, 2xx, 3xx, 4xx dan 5xx. Kod ralat biasa adalah seperti berikut:
400 Permintaan Buruk: Format permintaan salah
401 Tidak dibenarkan: Pengesahan diperlukan
404 Tidak Ditemui: Sumber yang sepadan tidak ditemui; Ralat Pelayan Dalaman 500 : Ralat dalaman pelayan.
$ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "http://example.com"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $result = curl_exec($ch); $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); curl_close($ch); switch ($httpCode) { case 200: // 处理请求正常返回结果 break; case 404: // 处理请求结果未找到的情况 break; default: // 处理其他情况 break; }
Atas ialah kandungan terperinci Bagaimana untuk menyelesaikan ralat yang dikembalikan oleh php curl_exec. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!