2010-11-18 31 views

Trả lời

119

Chỉ cần sử dụng -H tham số nhiều lần:

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

Điều gì sẽ xảy ra nếu tiêu đề chứa '" '? – Freewind

+6

Nó không nên. Tiêu đề phải được mã hóa url. –

+0

@Freewind bọc giá trị bằng một dấu nháy đơn thay vì gấp đôi hoặc thoát khỏi nó. . – Fuser97381

27

Đôi khi thay đổi tiêu đề là không đủ, một số trang web kiểm tra referer cũng như:

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' 

Trong ví dụ này referer (-e hoặc --referer trong curl) là 'localhost'.

11

Để chuyển nhiều tiêu đề trong yêu cầu curl, bạn chỉ cần thêm -H hoặc --header vào lệnh curl của mình.

Ví dụ

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

Đi Hơn nữa

Đối với các trường tiêu đề HTTP chuẩn như User-Agent, Cookie, chủ, có thực sự là một cách khác để thiết lập chúng. Lệnh curl cung cấp các tùy chọn được chỉ định để thiết lập các trường tiêu đề sau:

  • -A (hoặc --user-agent): đặt trường "Tác nhân người dùng".
  • -b (hoặc --cookie): đặt trường "Cookie".
  • -e (hoặc --referer): đặt trường "Người giới thiệu".
  • -H (hoặc --header): thiết lập "Header"

Ví dụ, hai lệnh sau đây là tương đương. Cả hai thay đổi chuỗi "User-Agent" trong tiêu đề 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 
Các vấn đề liên quan