Code de réponse HTTP avec file_get_contents et stream_context_create
Afin d'effectuer des requêtes POST, vous pouvez utiliser file_get_contents en conjonction avec stream_context_create. Cependant, vous pouvez rencontrer des avertissements lorsque vous rencontrez des erreurs HTTP. Cet article aborde ce problème et propose des solutions pour supprimer les avertissements et obtenir les codes de réponse du flux.
Pour commencer, considérons le scénario suivant :
$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);
Ce code gère les requêtes POST, mais en cas d'erreur HTTP, un avertissement s'affiche :
file_get_contents(...): failed to open stream: HTTP request failed! HTTP/1.0 400 Bad Request
De plus, il renvoie false. Deux problèmes découlent de ce problème :
Suppression de l'avertissement
Pour supprimer l'avertissement, nous pouvons utiliser l'ignore_errors option dans stream_context_create() :
$context = stream_context_create(['http' => ['ignore_errors' => true]]);
Avec cette modification, l'avertissement ne sera plus affiché.
Obtention des codes de réponse
Pour obtenir le code de réponse du flux, vous pouvez inspecter la variable http_response_header :
$context = stream_context_create(['http' => ['ignore_errors' => true]]); $result = file_get_contents("http://example.com", false, $context); var_dump($http_response_header);
Ce code affichera un tableau contenant les en-têtes de réponse, y compris le code de réponse.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!