Como posso definir o cabeçalho da solicitação de ondulação?


197

Como eu passaria vários valores no cabeçalho para uma curlsolicitação?


Você tem um exemplo que você está usando agora que pode nos mostrar?
precisa

4
adicione vários sinalizadores -H. Por exemplocurl -H "Content-Type : application/json" -H "Authorization : Token token='yourtokenhere'"
gsumk

Respostas:


242

Basta usar o -Hparâmetro várias vezes:

curl -H "Accept-Charset: utf-8" -H "Content-Type: application/x-www-form-urlencoded" http://www.some-domain.com

E se o cabeçalho contiver "?
Freewind

2
@Freewind agrupe o valor com aspas simples, em vez de duas, ou escape. A mesma coisa que você sempre faz nesse caso.
Darth Egregious

47

Às vezes, alterar o cabeçalho não é suficiente, alguns sites também verificam o referenciador:

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'

Neste exemplo, o referenciador (-e ou --referer in curl) é 'localhost'.


45

Para passar vários cabeçalhos em uma solicitação de curvatura, basta adicionar mais -Hou --headerao seu comando de curvatura.

Exemplo

//Simplified
$ curl -v -H 'header1:val' -H 'header2:val' URL

//Explanatory
$ curl -v -H 'Connection: keep-alive' -H 'Content-Type: application/json'  https://www.example.com

Indo além

Para campos de cabeçalho HTTP padrão, como User-Agent , Cookie , Host , existe realmente outra maneira de defini-los. O comando curl oferece opções designadas para definir estes campos de cabeçalho:

  • -A (ou --user-agent): define o campo "User-Agent".
  • -b (ou --cookie): define o campo "Cookie".
  • -e (ou --referer): define o campo "Referer".
  • -H (ou --header): define o campo "Header"

Por exemplo, os dois comandos a seguir são equivalentes. Os dois alteram a string "User-Agent" no cabeçalho HTTP.

    $ curl -v -H "Content-Type: application/json" -H "User-Agent: UserAgentString" https://www.example.com
    $ curl -v -H "Content-Type: application/json" -A "UserAgentString" https://www.example.com
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.