web-dev-qa-db-fra.com

Curl post data and headers only

Je souhaite obtenir les en-têtes uniquement à partir d'une demande de boucle

curl -I www.google.com

Tout grand. Maintenant, je veux le faire mais aussi transmettre les données de publication:

curl -I -d'test=test' www.google.com

Mais tout ce que je reçois c'est:

Warning: You can only select one HTTP request!

Quelqu'un a une idée de comment faire ça ou est-ce que je fais quelque chose de stupide?

73
J.D. Fitz.Gerald

Le -I L'option indique à curl de faire une HEAD requête pendant que -d'test=test' L'option indique à curl de faire un POST, donc vous dites à curl de faire deux types de requêtes différents.

curl -s -d'test=test' -D- -o/dev/null www.google.com 

ou, sous Windows:

curl -s -d'test=test' -D- -onul: www.google.com 

C'est la meilleure façon de le faire pour autant que je puisse trouver. Les options sont les suivantes:

  • -D- Vider l'en-tête dans le fichier répertorié, ou stdout lorsque - est passé, comme ceci.
  • -o/dev/null Envoyez le corps vers le fichier répertorié. Ici, nous jetons le corps pour ne voir que les en-têtes.
  • -s Silencieux (pas de barre de progression)
113
J.D. Fitz.Gerald

-d signifie que vous envoyez des données de formulaire, via la méthode POST. -I signifie que vous regardez simplement les métadonnées via HEAD.

Je suggère soit

  • Télécharger sur /dev/null et écrivez les en-têtes via le -D headerfile vers le fichier headerfile
  • Utilisation -i pour inclure les en-têtes dans les réponses et tout sauter de la première ligne vide.
30
phihag