2010-11-18 160 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