我希望在Linux机箱上向Apache服务器发送一个标头。如何通过cURL调用实现这一点?


当前回答

GET(多个参数):

curl -X  GET "http://localhost:3000/action?result1=gh&result2=ghk"

or

curl --request  GET "http://localhost:3000/action?result1=gh&result2=ghk"

or

curl  "http://localhost:3000/action?result1=gh&result2=ghk"

or

curl -i -H "Application/json" -H "Content-type: application/json"  "http://localhost:3000/action?result1=gh&result2=ghk"

其他回答

下面是最常见的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

在通过窗口的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

如果您想发送自定义标头,您可以这样做:

curl -v -H @{'custom_header'='custom_header_value'} http://localhost:3000/action?result1=gh&result2=ghk

在PHP中:

curl_setopt($ch, CURLOPT_HTTPHEADER, array('HeaderName:HeaderValue'));

或者可以设置多个:

curl_setopt($ch, CURLOPT_HTTPHEADER, array('HeaderName:HeaderValue', 'HeaderName2:HeaderValue2'));