Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Mengendalikan Ralat HTTP dan Dapatkan Kod Respons dengan `file_get_contents` dan `stream_context_create`?
Kod Respons HTTP dengan file_get_contents dan stream_context_create
Untuk membuat permintaan POST, anda boleh menggunakan file_get_contents bersama-sama dengan stream_context_create. Walau bagaimanapun, anda mungkin menghadapi amaran apabila anda menghadapi ralat HTTP. Artikel ini menangani isu ini dan menyediakan penyelesaian untuk kedua-dua menyekat amaran dan mendapatkan kod respons daripada strim.
Untuk bermula, pertimbangkan senario berikut:
$options = ['http' => [ 'method' => 'POST', 'content' => $data, 'header' => "Content-Type: text/plain\r\n" . "Content-Length: " . strlen($data) . "\r\n", ]]; $context = stream_context_create($options); $response = file_get_contents($url, false, $context);
Kod ini mengendalikan permintaan POST, tetapi sekiranya berlaku ralat HTTP, amaran dipaparkan:
file_get_contents(...): failed to open stream: HTTP request failed! HTTP/1.0 400 Bad Request
Selain itu, ia mengembalikan palsu. Dua kebimbangan timbul daripada isu ini:
Mencegah Amaran
Untuk menyekat amaran, kami boleh menggunakan pilihan ignore_errors dalam stream_context_create():
$context = stream_context_create(['http' => ['ignore_errors' => true]]);
Dengan pengubahsuaian ini, amaran tidak akan dipaparkan lagi.
Mendapatkan Kod Respons
Untuk mendapatkan kod respons daripada strim, anda boleh memeriksa http_response_header pembolehubah:
$context = stream_context_create(['http' => ['ignore_errors' => true]]); $result = file_get_contents("http://example.com", false, $context); var_dump($http_response_header);
Kod ini akan memaparkan tatasusunan yang mengandungi pengepala respons, termasuk kod respons.
Atas ialah kandungan terperinci Bagaimana untuk Mengendalikan Ralat HTTP dan Dapatkan Kod Respons dengan `file_get_contents` dan `stream_context_create`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!