2010-11-18 162 views

回答

119

只需使用-H參數幾次:

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

如果頭部包含''',該怎麼辦? – Freewind 2011-04-08 08:45:00

+6

它應該。頭部必須是url編碼的。 – 2012-11-15 18:26:38

+0

@Freewind用單引號而不是雙引號包裝它,或者轉義它。 。 – Fuser97381 2015-06-26 19:15:25

27

有時改變頭是不夠的,一些網站檢查引薦以及:

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或 - curl中的--referer)是'localhost'。

11

要在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' http://www.example.com 

去此外

對於標準的HTTP標頭字段,諸如用戶代理曲奇主機,實際上是另一種方式來設置他們。 curl命令提供了用於設置這些頭字段的指定選項:

  • -A(或--user-agent):設置「User-Agent」字段。
  • -b(或--cookie):設置「Cookie」字段。
  • -e(或--referer):設置「引用者」字段。
  • -H(或--header):設置 「頁眉」 字段

例如,以下兩個命令是等價的。他們都改變了HTTP頭中的「User-Agent」字符串。

$ 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