Как я могу установить заголовок запроса для curl? - PullRequest
157 голосов
/ 18 ноября 2010

Как мне передать несколько значений в заголовке для curl запроса?

Ответы [ 3 ]

196 голосов
/ 18 ноября 2010

Просто используйте параметр -H несколько раз:

curl -H "Accept-Charset: utf-8" -H "Content-Type: application/x-www-form-urlencoded" http://www.some-domain.com
43 голосов
/ 06 сентября 2013

Иногда изменение заголовка недостаточно, некоторые сайты также проверяют реферера:

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'

В этом примере referer (-e или --referer в curl) - это localhost.

30 голосов
/ 26 июля 2017

Чтобы передать несколько заголовков в запросе curl, вы просто добавляете дополнительные -H или --header к вашей команде curl.

Пример

//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

Идем дальше

Для стандартных полей заголовка HTTP, таких как User-Agent , Cookie , Host , на самом деле существует другой способ их установки. Команда curl предлагает обозначенные опции для установки этих полей заголовка:

  • -A (или --user-agent): установить поле «User-Agent».
  • -b (или --cookie): установить поле «Cookie».
  • -e (или --referer): установить поле "Referer".
  • -H (или --header): установить поле «Заголовок»

Например, следующие две команды эквивалентны. Они оба изменяют строку «User-Agent» в заголовке 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...