Rumah > pembangunan bahagian belakang > tutorial php > Bagaimana untuk Mengendalikan Ralat HTTP dan Dapatkan Kod Respons dengan `file_get_contents` dan `stream_context_create`?

Bagaimana untuk Mengendalikan Ralat HTTP dan Dapatkan Kod Respons dengan `file_get_contents` dan `stream_context_create`?

Linda Hamilton
Lepaskan: 2024-12-02 08:17:10
asal
794 orang telah melayarinya

How to Handle HTTP Errors and Retrieve Response Codes with `file_get_contents` and `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);
Salin selepas log masuk

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
Salin selepas log masuk

Selain itu, ia mengembalikan palsu. Dua kebimbangan timbul daripada isu ini:

  1. Bolehkah saya menghalang amaran daripada muncul?
  2. Adakah mungkin untuk mendapatkan butiran ralat, terutamanya kod respons, daripada strim?

Mencegah Amaran

Untuk menyekat amaran, kami boleh menggunakan pilihan ignore_errors dalam stream_context_create():

$context = stream_context_create(['http' => ['ignore_errors' => true]]);
Salin selepas log masuk

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);
Salin selepas log masuk

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!

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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan