我希望在Linux机器上向我的Apache服务器发送一个标头.如何通过卷曲调用实现此目的?
man curl
:
-H/--header例:(HTTP) Extra header to use when getting a web page. You may specify any number of extra headers. Note that if you should add a custom header that has the same name as one of the internal ones curl would use, your externally set header will be used instead of the internal one. This allows you to make even trickier stuff than curl would normally do. You should not replace internally set headers without knowing perfectly well what you're doing. Remove an internal header by giving a replacement without content on the right side of the colon, as in: -H "Host:". curl will make sure that each header you add/replace get sent with the proper end of line marker, you should thus not add that as a part of the header content: do not add newlines or carriage returns they will only mess things up for you. See also the -A/--user-agent and -e/--referer options. This option can be used multiple times to add/replace/remove multi- ple headers.
curl --header "X-MyHeader: 123" www.google.com
您可以通过添加-v
选项查看卷曲发送的请求.
得到:
使用JSON:
curl -i -H "Accept: application/json" -H "Content-Type: application/json" http://hostname/resource
使用XML:
curl -H "Accept: application/xml" -H "Content-Type: application/xml" -X GET http://hostname/resource
POST:
用于发布数据:
curl --data "param1=value1¶m2=value2" http://hostname/resource
对于文件上传:
curl --form "fileupload=@filename.txt" http://hostname/resource
RESTful HTTP帖子:
curl -X POST -d @filename http://hostname/resource
用于登录站点(auth):
curl -d "username=admin&password=admin&submit=Login" --dump-header headers http://localhost/Login curl -L -b headers http://localhost/
在PHP中:
curl_setopt($ch, CURLOPT_HTTPHEADER, array('HeaderName:HeaderValue'));
或者您可以设置多个:
curl_setopt($ch, CURLOPT_HTTPHEADER, array('HeaderName:HeaderValue', 'HeaderName2:HeaderValue2'));
使用-H or --header
.
手册页:http://curl.haxx.se/docs/manpage.html#-H
GET(多个参数):
curl -X GET "http://localhost:3000/action?result1=gh&result2=ghk"
要么
curl --request GET "http://localhost:3000/action?result1=gh&result2=ghk"
要么
curl "http://localhost:3000/action?result1=gh&result2=ghk"
要么
curl -i -H "Application/json" -H "Content-type: application/json" "http://localhost:3000/action?result1=gh&result2=ghk"
您还可以发送多个标头,数据(例如JSON),并在单个CUrl调用中指定Call方法(POST,GET),如下所示:
curl -X POST(Get or whatever) \ http://your_url.com/api/endpoint \ -H 'Content-Type: application/json' \ -H 'header-element1: header-data1' \ -H 'header-element2: header-data2' \
......更多标题...
-d '{ "JsonExArray": [ { "json_prop": "1", }, { "json_prop": "2", } ] }'
我用邮递员。
执行您想执行的任何呼叫。然后,邮递员提供了一个方便的工具来显示卷曲代码。
在终端中运行它。
我已经从curl转到了Httpie ; 语法如下:
http http://myurl HeaderName:value
如果您想发送自定义标头,可以这样做:
curl -v -H @{'custom_header'='custom_header_value'} http://localhost:3000/action?result1=gh&result2=ghk