J'utilise PHP Streams pour faire des appels HTTP avec fopen(). Je voudrais imprimer la requête HTTP sous la forme d'une chaîne (en-têtes et contenu) avant qu'elle ne soit envoyée via fopen().Comment obtenir la requête HTTP en tant que chaîne de PHP HTTP Stream
Existe-t-il une fonction qui gère la variable de contexte de flux pour ce faire? Si oui, quelqu'un aurait-il l'amabilité d'en afficher un bref exemple?
Voici une fonction qui attend une URL, va chercher et retourne le contenu:
function do_post_request ($url, $content, $cookie = null) {
$headers = array("Content-type: application/x-www-form-urlencoded",
$cookie);
$all_headers = implode("\r\n", $headers)."\r\n";
$params = array('http' => array("method" => "POST",
"content" => $content,
"header" => $all_headers,
),
);
$ctx = stream_context_create($params);
$fp = fopen($url, 'rb', false, $ctx);
if (empty($fp)) {
throw new Exception("$url: Failed");
}
$resp = stream_get_contents($fp);
if (empty($resp)) {
throw new Exception("error: bad fetch");
}
return $resp
}
Je ne crois pas que vous puissiez le faire. Où avez-vous besoin de ces en-têtes avant de faire une demande? – Wrikken
En bref, pour le débogage. Je me connecte à un service Web personnalisé et je dois m'assurer que les en-têtes et le contenu du client HTTP correspondent à ce que je souhaite. –
Donc. après le fait (c'est-à-dire pas avant l'envoi) serait assez bon? Je le ferais soit en utilisant 'cURL' ou' HTTPRequest', qui le supporte nativement. Si vous en avez vraiment besoin avec les paramètres 'fopen' & context, je pense que vous devrez créer un wrapper de proxy. – Wrikken