Как передать несколько значений в заголовке для запроса curl
?
Как настроить заголовок запроса для завивки?
Ответ 1
Просто используйте параметр -H
несколько раз:
curl -H "Accept-Charset: utf-8" -H "Content-Type: application/x-www-form-urlencoded" http://www.some-domain.com
Ответ 2
Иногда изменить заголовок недостаточно, некоторые сайты также проверяют реферера:
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'
В этом примере референт (-e или --referer in curl) является "localhost".
Ответ 3
Чтобы передать несколько заголовков в запросе на завивки, вы просто добавляете дополнительные -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): установите поле "Пользователь-агент".
- -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