我如何在头部传递curl请求的多个值?
当前回答
有时候改变标题是不够的,有些网站还会检查引用者:
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'。
其他回答
使用GET Request设置Header -H "Content-Type: application/json"
的例子,
curl -H "Content-Type: application/json" -X GET https://jsonplaceholder.typicode.com/posts/1
如果你想添加多个头
curl -H "Connection: keep-alive" -H "Content-Type: application/json -X GET https://jsonplaceholder.typicode.com/posts/1
要在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-Agent, Cookie, Host,实际上还有另一种方法来设置它们。curl命令提供了指定的选项来设置这些报头字段:
-A(或——user-agent):设置“user-agent”字段。 -b(或——cookie):设置“cookie”字段。 -e(或——referer):设置“referer”字段。 -H(或——header):设置“header”字段
例如,下面两个命令是等价的。它们都改变了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
有时候改变标题是不够的,有些网站还会检查引用者:
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'。
只需要使用-H参数几次:
curl -H "Accept-Charset: utf-8" -H "Content-Type: application/x-www-form-urlencoded" http://www.some-domain.example
推荐文章
- 从URL执行bash脚本
- PHP中的cURL是什么?
- 对bash脚本函数中定义的变量使用curl POST
- 使用curl POST multipart/form-data的正确方法是什么?
- PHP -调试Curl
- (1) libcurl不支持或禁用https协议
- 在尝试访问HTTPS url时,如何使用cURL处理证书?
- 如何使用PHP 7安装ext-curl扩展?
- 如何通过JSON文件传递有效载荷卷曲?
- 编写器安装错误——当它实际启用时需要ext_curl
- 如何使用Python执行cURL命令?
- CURL命令行URL参数
- 我如何为卷曲设置请求头?
- 在PHP中设置Curl的超时
- curl:(35)错误:1408F10B:SSL例程:ssl3_get_record:错误的版本号