-D, --dump-header <file>
Write the protocol headers to the specified file.
This option is handy to use when you want to store the headers
that a HTTP site sends to you. Cookies from the headers could
then be read in a second curl invocation by using the -b,
--cookie option! The -c, --cookie-jar option is however a better
way to store cookies.
et
-S, --show-error
When used with -s, --silent, it makes curl show an error message if it fails.
et
-L/--location
(HTTP/HTTPS) If the server reports that the requested page has moved to a different location (indicated with a Location: header and a 3XX response
code), this option will make curl redo the request on the new place. If used together with -i/--include or -I/--head, headers from all requested
pages will be shown. When authentication is used, curl only sends its credentials to the initial host. If a redirect takes curl to a different
host, it won’t be able to intercept the user+password. See also --location-trusted on how to change this. You can limit the amount of redirects to
follow by using the --max-redirs option.
When curl follows a redirect and the request is not a plain GET (for example POST or PUT), it will do the following request with a GET if the HTTP
response was 301, 302, or 303. If the response code was any other 3xx code, curl will re-send the following request using the same unmodified
method.
à partir de la page de manuel. donc
curl -sSL -D - www.acooke.org -o /dev/null
suit les redirections, vide les en-têtes sur stdout et envoie les données à / dev / null (c'est un GET, pas un POST, mais vous pouvez faire la même chose avec un POST - ajoutez simplement l'option que vous utilisez déjà pour le POST de données)
notez l' -
after -D
qui indique que le "fichier" de sortie est stdout.
curl -s -D - http://yahoo.com -o nul
-D
prend un argument qui indique où la sortie doit aller. le tiret unique signifie qu'il devrait aller à la sortie standard.Les autres réponses nécessitent le téléchargement du corps de réponse. Mais il existe un moyen de faire une requête POST qui ne récupérera que l'en-tête:
Un
-I
par lui-même effectue une requête HEAD qui peut être remplacée par-X POST
pour effectuer une requête POST (ou toute autre) et toujours obtenir uniquement les données d'en-tête.la source
GET
requête et ne télécharge pas le corps de la réponse dans son intégralité (ou du moins ne le génère pas). Le-s
drapeau n'est pas nécessaire.GET
par laPOST
commande ci-dessus et cela fonctionnera comme prévu.or any other
est la clé là-bas.POST
certaines données. Curl dit:Warning: You can only select one HTTP request method! You asked for both POST Warning: (-d, --data) and HEAD (-I, --head).
-X HEAD
n'y a donc pas de solution fiable ici.La commande suivante affiche des informations supplémentaires
Vous pouvez demander au serveur d'envoyer uniquement HEAD, au lieu d'une réponse complète
Note:
Dans certains cas, le serveur peut envoyer différents en-têtes pour la publication et HEAD. Mais dans presque tous les cas, les en-têtes sont identiques.la source
-X, --request
, cela-X HEAD
donne quand même «une tonne de données» mais il y en a-I, --head
qui devrait donner ce que vous attendez.-X HEAD
et-I
sont exactement équivalents.-X HEAD
est que le serveur peut répondre différemment, car il reçoit maintenant uneHEAD
demande au lieu d'uneGET
(ou quelle que soit la demande précédente)Warning: Setting custom HTTP method to HEAD with -X/--request may not work the Warning: way you want. Consider using -I/--head instead.
Pour les corps à réponse longue (et diverses autres situations similaires), la solution que j'utilise est toujours de diriger vers
less
, doncou
fera le travail.
la source
HEAD
requête à laquelle de nombreux serveurs répondent différemment. la seconde émet uneGET
demande qui ressemble plus à ce que nous recherchons ici.C'est peut-être un peu extrême, mais j'utilise cette version super courte:
Explication:
-v
imprimer les informations de débogage (qui incluent les en-têtes)-o.
envoyer des données de page Web (que nous voulons ignorer) à un certain fichier,.
dans ce cas, qui est un répertoire et est une destination non valide et rend la sortie à ignorer.-s
pas de barre de progression, pas d'informations d'erreur (sinon vous verriezWarning: Failed to create the file .: Is a directory
)avertissement: le résultat échoue toujours (en termes de code d'erreur, s'il est accessible ou non). N'utilisez pas, par exemple, des instructions conditionnelles dans les scripts shell ...
la source
-o.
au lieu de-o /dev/null
?-o.
est utilisé par opposition-o /dev/null
à la brièvetécurl -svo. <url> && echo foo
ne sera pas imprimerfoo
parce que-o.
fairecurl
retourner un code non nul (= erreur):curl: (23) Failed writing body
.Beaucoup plus facile - c'est ce que j'utilise pour éviter le suivi Shortlink - est le suivant:
… Qui suit également des liens .
la source
Bien que les autres réponses n'aient pas fonctionné pour moi dans toutes les situations, la meilleure solution que j'ai pu trouver (en travaillant
POST
également), tirée d' ici :curl -vs 'https://some-site.com' 1> /dev/null
la source
headcurl.cmd (version Windows)
-s
,-S
,-k
,-v
(il s'agit de dépannage, n'est-ce pas?),%*
signifie [transmettre tous les paramètres à ce script] (enfin ( https://stackoverflow.com/a/980372/444255 ), eh bien généralement ce n'est qu'un paramètre: l'url que vous testezexemple réel (sur la résolution des problèmes de proxy):
Version Linux
pour votre
.bash_aliases
/.bash_rc
:la source
-X POST
aux paramètres passthrough, si vous voulez GET, utilisez GET (c'est-à-dire par défaut), car les réponses peuvent différer. - À moins que vous ne fassiez de gros curling dans les scripts de production (pas pour le diagnostic et le développement), je me fiche d'un peu de bande passante.