Ich möchte sehen, welche Postfelder in der Anfrage enthalten sind, bevor ich sie sende. (Zum Debuggen).
Die von mir verwendete PHP-Bibliothek (Klasse) ist bereits erstellt (nicht von mir), daher versuche ich, sie zu verstehen.
Soweit ich das beurteilen kann, werden curl_setopt()
verschiedene Optionen wie Header und dergleichen festgelegt und anschließend curl_exec()
die Anfrage gesendet.
Ideen, wie Sie sehen können, welche Postfelder gesendet werden?
Antworten:
Sie können die
CURLOPT_VERBOSE
Option aktivieren :Wenn
CURLOPT_VERBOSE
gesetzt, wird die Ausgabe in STDERR oder die mit angegebene Datei geschriebenCURLOPT_STDERR
. Die Ausgabe ist sehr informativ.Sie können auch tcpdump oder wireshark verwenden, um den Netzwerkverkehr zu überwachen.
quelle
CURLINFO_HEADER_OUT
zuTRUE
. Soweit ich das beurteilen kann ...Sie können die
CURLOPT_VERBOSE
Option aktivieren und diese Informationen in einem (temporären) Protokoll protokollierenCURLOPT_STDERR
:Sie können es dann lesen, nachdem Curl die Anforderung ausgeführt hat:
(Ich habe ursprünglich in einer verwandten Frage ähnlich, aber ausführlicher geantwortet .)
Weitere Informationen wie Metriken zur letzten Anfrage finden Sie unter
curl_getinfo
. Diese Informationen können auch zum Debuggen von Curl-Anforderungen hilfreich sein. Als Anwendungsbeispiel würde ich das normalerweise in eine Funktion einbinden:quelle
Hier ist ein einfacherer Code für dasselbe:
Dabei ist $ fp ein Dateihandle zum Ausgeben von Fehlern. Beispielsweise:
(Lesen Sie weiter http://curl.haxx.se/mail/curlphp-2008-03/0064.html )
quelle
Hier ist eine noch einfachere Möglichkeit, indem Sie direkt in die PHP-Fehlerausgabe schreiben
quelle
Gehen Sie folgendermaßen vor, um nur die Informationen einer CURL-Anfrage zu erhalten:
quelle
Wenn Sie nur einen sehr schnellen Weg zum Debuggen des Ergebnisses suchen:
quelle
Eine andere (grobe) Option besteht darin, netcat zum Dumping der vollständigen Anforderung zu verwenden:
Und natürlich die fehlgeschlagene Anfrage an sie senden:
Insbesondere wird das immer hängen bleiben + fehlschlagen, da Netcat niemals eine gültige HTTP-Antwort erstellen wird. Es ist wirklich nur, um zu überprüfen, was wirklich gesendet wurde. Die bessere Option ist natürlich die Verwendung eines http-Anforderungs-Debugging-Dienstes .
quelle
Debug-Informationen an STDERR ausgeben:
Debug-Informationen in Datei ausgeben:
Siehe https://github.com/andriichuk/php-curl-cookbook#debug-request
quelle