J'aimerais voir quels sont les champs de message dans la demande avant de l'envoyer. (À des fins de débogage).
La bibliothèque PHP (classe) que j'utilise est déjà faite (pas par moi), donc j'essaie de la comprendre.
Pour autant que je sache, il utilise curl_setopt()
pour définir différentes options comme les en-têtes et autres, puis il utilise curl_exec()
pour envoyer la demande.
Des idées sur la façon de voir quels champs de message sont envoyés?
Réponses:
Vous pouvez activer l'
CURLOPT_VERBOSE
option:Lorsque
CURLOPT_VERBOSE
est défini, la sortie est écrite dans STDERR ou dans le fichier spécifié à l'aide deCURLOPT_STDERR
. La sortie est très informative.Vous pouvez également utiliser tcpdump ou cableshark pour surveiller le trafic réseau.
la source
CURLINFO_HEADER_OUT
àTRUE
. Pour autant que je sache ...Vous pouvez activer l'
CURLOPT_VERBOSE
option et enregistrer ces informations dans un (temporaire)CURLOPT_STDERR
:Vous pouvez ensuite le lire une fois que curl a effectué la demande:
(J'ai répondu à l' origine similaire mais plus étendu dans une question connexe.)
Plus d'informations, telles que des statistiques sur la dernière demande, sont disponibles via
curl_getinfo
. Ces informations peuvent également être utiles pour le débogage des requêtes curl. Un exemple d'utilisation, j'envelopperais normalement cela dans une fonction:la source
Voici un code plus simple pour le même:
où $ fp est un descripteur de fichier pour générer des erreurs. Par exemple:
(Lire sur http://curl.haxx.se/mail/curlphp-2008-03/0064.html )
la source
Voici un moyen encore plus simple, en écrivant directement sur la sortie d'erreur php
la source
Pour obtenir simplement les informations d'une demande CURL, procédez comme suit:
la source
Exportez les informations de débogage vers STDERR:
Sortie des informations de débogage dans un fichier:
Voir https://github.com/andriichuk/php-curl-cookbook#debug-request
la source
Si vous voulez juste un moyen très rapide de déboguer le résultat:
la source
Une autre option (brute) consiste à utiliser netcat pour vider la demande complète:
Et bien sûr en lui envoyant la demande qui a échoué:
Notamment, cela va toujours se bloquer + échouer, car netcat ne construira jamais une réponse HTTP valide. C'est vraiment juste pour inspecter ce qui a vraiment été envoyé. La meilleure option, bien sûr, utilise un service de débogage de requête http .
la source