如何设置curl的请求头?

5kgi1eie  于 2022-11-13  发布在  其他
关注(0)|答案(3)|浏览(358)

如何在curl请求的头中传递多个值?

j2cgzkjk

j2cgzkjk1#

只需多次使用-H参数:

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

khbbv19g2#

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

走得更远

对于标准的HTTP头字段,如 User-AgentCookieHost,实际上还有另一种方法来设置它们。curl命令提供了指定的选项来设置这些头字段:

  • -A(或--用户代理):设置“用户代理”字段。
  • -B(或--cookie):设置“Cookie”字段。
  • -e(或--引用对象):设置“Referer”字段。
  • -H(或--标题):设置“标题”字段

例如,以下两个命令是等效的。它们都更改HTTP头中的“User-Agent”字符串。

$ curl -v -H "Content-Type: application/json" -H "User-Agent: UserAgentString" https://www.example.com
    $ curl -v -H "Content-Type: application/json" -A "UserAgentString" https://www.example.com
jmo0nnb3

jmo0nnb33#

有时候仅仅更改标题是不够的,一些站点还会检查引用站点:

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'

在本例中,引用对象(curl中的-e或--referer)是“localhost”。

相关问题