ฉันจะตั้งค่าส่วนหัวคำขอให้ขดได้อย่างไร


197

ฉันจะส่งผ่านหลายค่าในส่วนหัวของcurlคำขอได้อย่างไร


คุณมีตัวอย่างที่คุณใช้อยู่ตอนนี้ที่คุณสามารถแสดงให้เราเห็นได้หรือไม่
Ryan Bigg

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 ห่อค่าด้วยเครื่องหมายคำพูดเดี่ยวแทนที่จะเป็น double หรือหนีออกมา สิ่งเดียวกับที่คุณทำในกรณีนี้
Darth Egregious

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 in curl) คือ 'localhost'


45

หากต้องการส่งหลายหัวข้อในคำขอ 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'  https://www.example.com

ก้าวต่อไป

สำหรับฟิลด์ส่วนหัว HTTP มาตรฐานเช่นUser-Agent , Cookie , Hostมีวิธีการตั้งค่าเหล่านั้นอีกวิธีหนึ่ง คำสั่ง curl เสนอตัวเลือกที่กำหนดไว้สำหรับการตั้งค่าฟิลด์ส่วนหัวเหล่านี้:

  • -A (หรือ --user-agent): ตั้งค่าฟิลด์ "User-Agent"
  • -b (หรือ --cookie): ตั้งค่าฟิลด์ "คุกกี้"
  • -e (หรือ --reerer): ตั้งค่าฟิลด์ "Referer"
  • -H (หรือ - ส่วนหัว): ตั้งค่าฟิลด์ "ส่วนหัว"

ตัวอย่างเช่นสองคำสั่งต่อไปนี้เทียบเท่ากัน ทั้งคู่เปลี่ยนสตริง "ตัวแทนผู้ใช้" ในส่วนหัว 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
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.