HTTP-Antwortcode mit file_get_contents und stream_context_create
Um POST-Anfragen zu stellen, können Sie file_get_contents in Verbindung mit stream_context_create verwenden. Bei HTTP-Fehlern können jedoch Warnungen angezeigt werden. Dieser Artikel befasst sich mit diesem Problem und bietet Lösungen sowohl zum Unterdrücken der Warnungen als auch zum Erhalten von Antwortcodes aus dem Stream.
Betrachten Sie zunächst das folgende Szenario:
$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);
Dieser Code verarbeitet POST-Anfragen. aber im Falle eines HTTP-Fehlers wird eine Warnung angezeigt:
file_get_contents(...): failed to open stream: HTTP request failed! HTTP/1.0 400 Bad Request
Zusätzlich wird false zurückgegeben. Aus diesem Problem ergeben sich zwei Bedenken:
Warnung unterdrücken
Um die Warnung zu unterdrücken, können wir „ignore_errors“ verwenden Option in stream_context_create():
$context = stream_context_create(['http' => ['ignore_errors' => true]]);
Mit dieser Änderung wird die Warnung nicht mehr angezeigt.
Antwortcodes erhalten
Zu erhalten Um den Antwortcode aus dem Stream zu erhalten, können Sie den http_response_header überprüfen Variable:
$context = stream_context_create(['http' => ['ignore_errors' => true]]); $result = file_get_contents("http://example.com", false, $context); var_dump($http_response_header);
Dieser Code zeigt ein Array mit Antwortheadern an, einschließlich des Antwortcodes.
Das obige ist der detaillierte Inhalt vonWie gehe ich mit HTTP-Fehlern um und rufe Antwortcodes mit „file_get_contents' und „stream_context_create' ab?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!