我怎样才能设置curl请求头?

我怎么会传递curl请求头中的多个值?

多次使用-H参数:

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

有时更改标题是不够的,有些网站也检查引用者:

 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' 

在这个例子中,referer(curl中的-e或–referer)是'localhost'。

要在curl请求中传递多个头文件,只需在curl命令中添加-H--header

 //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头域,如User-AgentCookieHost ,实际上有另一种设置方法。 curl命令提供了用于设置这些头部字段的指定选项:

  • -A(或–user-agent):设置“User-Agent”字段。
  • -b(或–cookie):设置“Cookie”字段。
  • -e(或–referer):设置“Referer”字段。
  • -H(或 – 标题):设置“标题”字段

例如,以下两个命令是等价的。 他们两个都改变HTTP头中的“User-Agent”string。

  $ 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