如何在curl
请求的标头中传递多个值?
答案 0 :(得分:189)
只需多次使用-H
参数:
curl -H "Accept-Charset: utf-8" -H "Content-Type: application/x-www-form-urlencoded" http://www.some-domain.com
答案 1 :(得分:41)
有时更改标题是不够的,有些网站也会检查引用:
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(-e或 - curl中的--referer)是“localhost”。
答案 2 :(得分:26)
要在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标头字段,例如用户代理, Cookie ,主机,实际上还有另一种设置它们的方法。 curl命令提供了用于设置这些标题字段的指定选项:
例如,以下两个命令是等效的。它们都会更改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