Bagaimana saya bisa mengatur header permintaan untuk ikal?


197

Bagaimana saya meneruskan beberapa nilai di header untuk curlpermintaan?


Apakah Anda memiliki contoh yang Anda gunakan saat ini sehingga dapat ditunjukkan kepada kami?
Ryan Bigg

4
tambahkan beberapa -H flag. Misalnyacurl -H "Content-Type : application/json" -H "Authorization : Token token='yourtokenhere'"
gsumk

Jawaban:


242

Cukup gunakan -Hparameter beberapa kali:

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

Bagaimana jika tajuk berisi "?
Freewind

2
@ Freewind membungkus nilainya dengan tanda kutip tunggal, bukan ganda, atau menghindarinya. Hal yang sama selalu Anda lakukan dalam kasus itu.
Darth Egregious

47

Terkadang mengubah tajuk tidak cukup, beberapa situs juga memeriksa rujukan:

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'

Dalam contoh ini referer (-e atau --referer in curl) adalah 'localhost'.


45

Untuk meneruskan beberapa header dalam permintaan curl, Anda cukup menambahkan tambahan -Hatau --headerke perintah curl Anda.

Contoh

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

Melangkah Lebih Lanjut

Untuk bidang tajuk HTTP standar seperti Agen-Pengguna , Cookie , Host , sebenarnya ada cara lain untuk menyetelnya. Perintah curl menawarkan opsi yang ditentukan untuk mengatur bidang header ini:

  • -A (atau --user-agent): setel bidang "User-Agent".
  • -b (atau --cookie): setel bidang "Cookie".
  • -e (atau --referer): setel bidang "Perujuk".
  • -H (atau --header): setel bidang "Header"

Sebagai contoh, dua perintah berikut ini setara. Keduanya mengubah string "User-Agent" di header 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
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.