我希望在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&param2=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'));