cURL supprimer le corps de la réponse
Est-il possible de charger cURL pour supprimer la sortie du corps de la réponse?
Dans mon cas, le corps de la réponse est une page HTML, qui déborde de la CLI de la mémoire tampon, ce qui rend difficile de trouver l'information pertinente. Je veux examiner les autres parties de la sortie tels que le code de réponse HTTP, les en-têtes d'e.t.c. - tout sauf le HTML.
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser le
-o
interrupteur etnull
pseudo-fichier :Unix
Windows
-s -o nul
mais sur ma machine windowscurl -s -o nul -v http://{internal-host}/{internal-uri}
sorties de la page html, j'ai essayécurl -s -o nul -v http://google.com
et il le fait de supprimer la sortie comme prévu , donc je ne comprends pas pourquoi cela ne fonctionne pas pour mon site interne-o
ne spécifie une Url de sortie: si vous avez plusieurs url, il ne fera que jeter la première 🙁NUL
et/dev/null
. À l'aide de-sIXGET
est une meilleure option de l'OMI.Voici un moyen de supprimer tous curl de sortie et les en-têtes, avec l'option de toujours montrer les erreurs, si elles se produisent. Utile pour des tâches cron ou de tests automatisés.
Unix
Pour supprimer toutes les données de sortie:
Pour supprimer la sortie, mais encore de montrer les erreurs si elles se produisent:
Windows
Pour supprimer toutes les données de sortie:
Pour supprimer la sortie, mais encore de montrer les erreurs si elles se produisent:
Paramètres Expliqué
--silent
supprime le téléchargement des en-cours de stats (mais montrent encore une sortie HTML)--output /dev/null
succès cache de sortie--show-error
montre des erreurs, même quandsilent
mode est activé--fail
va déclencher une erreur si la réponse HTTP est un code d'erreur (404, 500, etc.) au lieu de simplement les DNS/TCP erreurs.Mise à JOUR: je me rends compte que l'auteur original a voulu inspecter les en-têtes et le code de réponse d'une requête plutôt que de faire taire tout. Voir samael réponse pour plus de détails sur la façon de le faire.
NUL
et/dev/null
. À l'aide de-sIXGET
est une meilleure option de l'OMI.curl -vo/dev/null
/curl -voNUL
... et je ne sais pas si il y a un portable variante de cette, grh... ;-).Lorsque vous souhaitez afficher les en-têtes de mais de cacher le corps de la réponse, vous aurez envie d'utiliser:
J'avais été en utilisant
curl -I http://somedomain.com/your/url
pour juste montrer en-têtes de réponse. Le problème c'est que, il en fait la demande à l'aide de laTÊTE
méthode qui n'est pas bon lorsque vous souhaitez tester un appel API qui ne répond qu'à uneGET
demande. C'est ce que le-X GET
est pour, les changements de la demande à unGET
.Donc, en résumé:
-s
masque les barres de progression de sortie (particulièrement utile lors de la tuyauterie à un autre programme)-I
affiche les en-têtes (mais fait unHEAD
demande)-XGET
convertit demande de retour à unGET
demandevoir: http://www.woolie.co.uk/article/curl-full-get-request-dropping-body/
curl -i
fait exactement la même chose.-i
comprend le HTTP en-tête dans la sortie ainsi que le corps. Essayez-la.curl -i http://google.com
n'est pas le même quecurl -IXGET http://google.com