我希望在Linux机箱上向Apache服务器发送一个标头。如何通过cURL调用实现这一点?
当前回答
在通过窗口的anaconda环境中,命令应该是:GET,例如:
curl.exe http://127.0.0.1:5000/books
发布或修补数据,例如:
curl.exe http://127.0.0.1:5000/books/8 -X PATCH -H "Content-Type: application/json" -d '{\"rating\":\"2\"}'
PS:为json数据添加反斜杠以避免此类错误=>未能解码json对象:期望值:第1行第1列(char 0)
使用curl.exe而不是curl来避免这个问题:
Invoke-WebRequest : Cannot bind parameter 'Headers'. Cannot convert the "Content-Type: application/json" value of type
"System.String" to type "System.Collections.IDictionary".
At line:1 char:48
+ ... 0.1:5000/books/8 -X PATCH -H "Content-Type: application/json" -d '{\" ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument: (:) [Invoke-WebRequest], ParameterBindingException
+ FullyQualifiedErrorId : CannotConvertArgumentNoMessage,Microsoft.PowerShell.Commands.InvokeWebRequestCommand
其他回答
您还可以将多个标头、数据(例如JSON)和指定Call方法(POST、GET)发送到单个CUrl调用中,如下所示:
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",
}
]
}'
在通过窗口的anaconda环境中,命令应该是:GET,例如:
curl.exe http://127.0.0.1:5000/books
发布或修补数据,例如:
curl.exe http://127.0.0.1:5000/books/8 -X PATCH -H "Content-Type: application/json" -d '{\"rating\":\"2\"}'
PS:为json数据添加反斜杠以避免此类错误=>未能解码json对象:期望值:第1行第1列(char 0)
使用curl.exe而不是curl来避免这个问题:
Invoke-WebRequest : Cannot bind parameter 'Headers'. Cannot convert the "Content-Type: application/json" value of type
"System.String" to type "System.Collections.IDictionary".
At line:1 char:48
+ ... 0.1:5000/books/8 -X PATCH -H "Content-Type: application/json" -d '{\" ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument: (:) [Invoke-WebRequest], ParameterBindingException
+ FullyQualifiedErrorId : CannotConvertArgumentNoMessage,Microsoft.PowerShell.Commands.InvokeWebRequestCommand
我已经从curl转换为Httpie;语法如下:
http http://myurl HeaderName:value
GET:
使用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
职位:
对于过帐数据:
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/
如果您想发送自定义标头,您可以这样做:
curl -v -H @{'custom_header'='custom_header_value'} http://localhost:3000/action?result1=gh&result2=ghk
推荐文章
- 什么是http头“X-XSS-Protection”?
- 为什么cURL返回错误“(23)Failed writing body”?
- 如何POST JSON数据与PHP卷曲?
- 使用curl在PHP中获取HTTP代码
- 为跨源请求设置cookie
- SSL证书错误:无法获得本地颁发者证书
- 什么是“升级-不安全-请求”HTTP报头?
- 向Angular HttpClient添加一个HTTP头并不会发送这个头,为什么?
- 从URL执行bash脚本
- PHP中的cURL是什么?
- 对bash脚本函数中定义的变量使用curl POST
- 使用curl POST multipart/form-data的正确方法是什么?
- PHP -调试Curl
- Access-Control-Allow-Credentials报头到底做什么?
- (1) libcurl不支持或禁用https协议