Як я можу встановити заголовок запиту для curl?


197

Як я можу передавати декілька значень у заголовку для curlзапиту?


Чи є у вас приклад, який ви зараз використовуєте, щоб ви могли нам показати?
Райан Бігг

4
додати кілька -H прапор. Наприкладcurl -H "Content-Type : application/json" -H "Authorization : Token token='yourtokenhere'"
gsumk

Відповіді:


242

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

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

Що робити, якщо заголовок містить "?
Freewind

2
@Freewind оберніть це значення одинарною цитатою замість подвійної, або уникайте її. Те саме, що ви завжди робите в цьому випадку.
Дарт Егрегійний

47

Іноді зміна заголовка недостатня, деякі сайти перевіряють і реферер:

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 у curl) є "localhost".


45

Для передачі декількох заголовків у запиті на завиток просто додайте додаткові -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'  https://www.example.com

Йдемо далі

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

  • -A (або --користувач-агент): встановіть поле "Користувач-агент".
  • -b (або --cookie): встановіть поле "Cookie".
  • -e (або --referer): встановіть поле "Referer".
  • -H (або --header): встановіть поле "Header"

Наприклад, наступні дві команди еквівалентні. Обидва вони змінюють рядок "User-Agent" у заголовку 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
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.