Je crée une application d'automatisation Web Curl et j'ai du mal à ne pas obtenir le résultat souhaité de mon action POST, j'ai du mal à comprendre comment je peux afficher la demande POST complète que j'envoie (avec en-têtes), je J'ai cherché à ce sujet, mais tout ce qui apparaît, ce sont les en-têtes de réponse, en fait je les veux aussi, mais aussi la demande, qu'aucun des messages que je trouve sur Google ne semble mentionner.
Je sais que je peux afficher le résultat d'une requête curl en utilisant quelque chose comme ça (pardonnez-moi si ma syntaxe est désactivée, j'ai déjà arrêté ma machine virtuelle avec mon ide et mon code pour faire référence à
$result = curl($curl_exect) ;
Quoi qu'il en soit, j'apprécierais beaucoup tout conseil sur la façon d'afficher les en-têtes complets, merci
Réponses:
Vous pouvez voir les informations concernant le transfert en faisant:
curl_setopt($curl_exect, CURLINFO_HEADER_OUT, true);
avant la demande, et
après la demande
Vous pouvez également utiliser le
CURLOPT_HEADER
dans votrecurl_setopt
curl_setopt($curl_exect, CURLOPT_HEADER, true); $httpcode = curl_getinfo($c, CURLINFO_HTTP_CODE); return $httpcode == 200;
Ce ne sont là que quelques méthodes d'utilisation des en-têtes.
la source
curl_setopt($curl_exect, CURLINFO_HEADER_OUT, true);
Voici tout ce dont vous avez besoin:
curl_setopt($curlHandle, CURLINFO_HEADER_OUT, true); // enable tracking ... // do curl request $headerSent = curl_getinfo($curlHandle, CURLINFO_HEADER_OUT ); // request headers
la source
Vous pouvez enregistrer tous les en-têtes envoyés par curl dans un fichier en utilisant:
$f = fopen('request.txt', 'w'); curl_setopt($ch,CURLOPT_VERBOSE,true); curl_setopt($ch,CURLOPT_STDERR ,$f);
la source
Vous pouvez vous demander des en-têtes par vous-même en utilisant:
// open a socket connection on port 80 $fp = fsockopen($host, 80); // send the request headers: fputs($fp, "POST $path HTTP/1.1\r\n"); fputs($fp, "Host: $host\r\n"); fputs($fp, "Referer: $referer\r\n"); fputs($fp, "Content-type: application/x-www-form-urlencoded\r\n"); fputs($fp, "Content-length: ". strlen($data) ."\r\n"); fputs($fp, "Connection: close\r\n\r\n"); fputs($fp, $data); $result = ''; while(!feof($fp)) { // receive the results of the request $result .= fgets($fp, 128); } // close the socket connection: fclose($fp);
Comme écrit sur comment faire une demande
la source
J'ai eu exactement le même problème ces derniers temps, et j'ai installé Wireshark (c'est un outil de surveillance réseau). Vous pouvez tout voir avec cela, sauf le trafic chiffré (HTTPS).
la source
Ctrl+Shift+J
sur puis cliquer sur leXHR
bouton et le nom du fichier, puis voir les en-têtes et les données.