Comment est-ce que je passerais plusieurs valeurs dans l'en-tête pour une demande curl
?Comment puis-je définir l'en-tête de la requête pour curl?
Répondre
Il suffit d'utiliser le paramètre -H
plusieurs fois:
curl -H "Accept-Charset: utf-8" -H "Content-Type: application/x-www-form-urlencoded" http://www.some-domain.com
Que se passe-t-il si l'en-tête contient '' '? – Freewind
Cela ne devrait pas être le cas: les en-têtes doivent être codés en url –
@Freewind envelopper la valeur avec un guillemet simple au lieu d'un double, ou l'échapper . – Fuser97381
Parfois, changer l'en-tête ne suffit pas, certains sites vérifier le referer ainsi:
curl -v \
-H 'Host: restapi.some-site.com' \
-H 'Connection: keep-alive' \
-H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8' \
-H 'Accept-Language: en-GB,en-US;q=0.8,en;q=0.6' \
-e localhost \
-A 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.65 Safari/537.36' \
'http://restapi.some-site.com/getsomething?argument=value&argument2=value'
Dans cet exemple, le referer (-e ou --referer in curl) est 'localhost'.
Pour passer plusieurs en-têtes dans une requête curl, ajoutez simplement -H
ou --header
à votre commande curl.
Exemple
//Simplified
$ curl -v -H 'header1:val' -H 'header2:val' URL
//Explanatory
$ curl -v -H 'Connection: keep-alive' -H 'Content-Type: application/json' http://www.example.com
Aller plus loin
Pour les champs standard d'en-tête HTTP tels que User-Agent, Cookie, hôte, il est en fait une autre façon de mettre leur. La commande curl offre des options désignées pour définir ces champs d'en-tête:
- -A (ou --user-agent): définissez le champ "User-Agent".
- -b (ou --cookie): définissez le champ "Cookie".
- -e (ou --referer): définissez le champ "Referer".
- -H (ou --header): set champ "En-tête"
Par exemple, les deux commandes suivantes sont équivalentes. Les deux changent la chaîne "User-Agent" dans l'en-tête HTTP.
$ curl -v -H "Content-Type: application/json" -H "User-Agent: UserAgentString" http://www.example.com
$ curl -v -H "Content-Type: application/json" -A "UserAgentString" http://www.example.com
Avez-vous un exemple que vous utilisez maintenant que vous pourriez nous montrer? –