我希望在Linux机箱上向Apache服务器发送一个标头。如何通过cURL调用实现这一点?
当前回答
我用邮差。
执行你想做的任何调用。然后,邮递员提供了一个方便的工具来显示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
下面是最常见的http方法的一些curl命令。
此处考虑的域对象是
@Data
@NoArgsConstructor
@AllArgsConstructor
@Document
@Validated
public class Movie {
@Id
private String id;
private String name;
@NotNull
private Integer year;
@NotNull
private List<String> cast;
private LocalDate release_date;
}
创建后的视频
curl -i \
-d '{"id":1, "name": "Dhoom", "year":2004,"cast":["John Abraham", "Abhishek Bachan"],"release_date": "2004-06-15"}' \
-H "Content-Type: application/json" \
-X POST http://localhost:8080/v1/movies
获取所有视频
curl -i http://localhost:8080/v1/movies
按ID获取服务器
curl -i http://localhost:8080/v1/movies/1
输入更新视频
curl -i \
-d '{"id":1, "name": "Dhoom", "year":2005,"cast":["John Abhraham", "Abhishek Bachhan", "Uday Chopra", "Isha Deol"],"release_date": "2005-03-25"}' \
-H "Content-Type: application/json" \
-X PUT http://localhost:8080/v1/movies/1
删除-MOVIE
curl -i -X DELETE http://localhost:8080/v1/movies/1
我已经从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/
在PHP中:
curl_setopt($ch, CURLOPT_HTTPHEADER, array('HeaderName:HeaderValue'));
或者可以设置多个:
curl_setopt($ch, CURLOPT_HTTPHEADER, array('HeaderName:HeaderValue', 'HeaderName2:HeaderValue2'));
推荐文章
- 如何在PHP中捕获cURL错误
- NGINX 499错误码的可能原因
- 什么是HTTP“主机”报头?
- 在Bash中将输出赋给变量
- HTTPS和SSL3_GET_SERVER_CERTIFICATE:证书验证失败,CA is OK
- 自定义HttpClient请求头
- 过期和缓存控制头之间的区别是什么?
- REST DELETE真的是幂等的吗?
- 如何在Node.js内进行远程REST调用?旋度吗?
- 用户代理字符串可以有多大?
- 什么是接受* HTTP报头q=0.5 ?
- 缓存控制的无缓存和必须重新验证之间的区别?
- 如何为已安装的Ubuntu LAMP堆栈启用cURL ?
- 在PHP中为用户创建一个CSV文件
- Nginx中$host和$http_host的区别是什么