web-dev-qa-db-fra.com

Echo curl demande l'en-tête et le corps sans l'envoyer?

Avec l'outil de ligne de commande curl, est-il possible de echo, d'imprimer ou d'afficher la demande et de ne pas l'envoyer? Un peu comme un -n option? Je voudrais voir l'en-tête et le corps de la demande, et tout ce qui est inclus. Y a-t-il autre chose qui est envoyé à part l'en-tête et le corps?

40
ma11hew28

Permettez-moi d'appuyer la suggestion d'utiliser "nc" (netcat) pour voir tous les détails sans rien envoyer hors site.

Mais vous pouvez également obtenir tous les détails pour toute demande de ligne de commande curl en utilisant les commandes - trace ou - trace-ascii qui peuvent vider toutes les données entrantes et sortantes et demandes d'inspection.

Ces options ont l'avantage supplémentaire par rapport à "nc" de pouvoir afficher les détails du protocole même pour les opérations HTTPS et avec les "vraies" lignes de commande, etc.

24
Daniel Stenberg

Un requête HTTP est construit avec une ligne de requête, des en-têtes et un corps.

curl ne semble pas avoir d'indicateur pour faire un "dry-run". Selon vos besoins, vous pourrez peut-être voir ce que vous voulez en utilisant netcat comme proxy:

$ nc -l localhost 8000 &
[1] 3150
$ curl --proxy localhost:8000 --silent --max-time 1 http://www.stackoverflow.com
GET http://www.stackoverflow.com HTTP/1.1
User-Agent: curl/7.19.7 (x86_64-pc-linux-gnu) libcurl/7.19.7 OpenSSL/0.9.8k zlib/1.2.3.3 libidn/1.15
Host: www.stackoverflow.com
Accept: */*
Proxy-Connection: Keep-Alive

[1]+  Done                    nc -l localhost 8000
52
Anders Lindahl