curl: lire les en-têtes de fichier
Après l' --dump-d'en-tête écrit un fichier, comment faire lire les en-têtes de retour dans la prochaine demande? Je voudrais les lire à partir d'un fichier parce qu'il y a un certain nombre d'entre eux.
J'ai essayé norme en: cat headers | curl -v -H - ...
Je suis en fait à l'aide de la fonctionnalité dans Firebug pour "Copier-Têtes de la Requête" et puis en sauvant ceux d'un fichier. Cela semble être le même format.
Vous devez vous connecter pour publier un commentaire.
depuis curl 7.55.0
Facile:
... où l'en-tête de fichier est un fichier texte avec un en-tête HTTP à chaque ligne.
avant curl 7.55.0
curl n'avait aucun moyen de "bloc modification des en-têtes comme ça, pas même à partir d'un fichier.
Votre meilleure approche avec un vieux curl version est probablement à la place d'écrire un script shell qui rassemble tous les en-têtes du fichier et de les utiliser, comme:
Appeler le script comme ceci:
comment à ce sujet:
où
headers.txt
ressembletravaille dans BASH.
curl -v -H "$(cat headers.txt)" google.com
.. Permet de voir si quelqu'un d'autre commentaires pour s'assurer que ce est un moyen sûr de le faire. Il n'est pas documentée.-v
avant car je pensais que c'est un bruit qui n'est pas l'ajout d'une réponse correcte, mais vous avez raison, c'est plus facile. j'ai donc ajouté de retourDe départ avec curl 7.55.0 il est désormais possible de lire les en-têtes à partir d'un fichier:
C'est si facile maintenant.
curl -v -H @test.txt test.com
pour voir comment c'est effectivement envoyés et de les comparer avec-H 'x: y' -H 'a: b'
- vous devriez voir identiques sortie de curl tant que votretest.txt
contient 2 lignes:x: y
eta: b
.Comme répondu par @dimitri-sutyagin, si votre curl est au moins la version 7.55.0 vous pouvez utiliser le
@
notation de lire les en-têtes à partir d'un fichier:Si votre curl n'est PAS 7.55.0 ou plus récent, il y a un utile hack:
-K/--config <config file>
, et de mettre plusieurs-H/--header <header>
lignes dans le fichier texte.Par exemple:
curl --dump-header foo.txt https://www.google.com/
dos2unix foo.txt
Convertir le fichier
-H 'header'
lignes, manuellement ou avec un script:Cela pourrait quelque chose de sortie:
curl --config headerfile.txt https://www.google.com/