我正在尝试将 cURL 请求的内容类型标头设置为 application/json。
这是我在 cmd 中使用的请求(我省略了 Json-Body):
curl -v -X POST http://localhost:40071/api/Sale --header 'Content-Type: application/json' -d '{[Json Body]}'
运行此命令时,cURL 将记录以下内容:
Note: Unnecessary use of -X or --request, POST is already inferred.
* Trying 127.0.0.1:40071...
* Connected to localhost (127.0.0.1) port 40071 (#0)
> POST /api/Sale HTTP/1.1
> Host: localhost:40071
> User-Agent: curl/7.79.1
> Accept: */*
> Content-Length: 332
> Content-Type: application/x-www-form-urlencoded
>
* Mark bundle as not supporting multiuse
< HTTP/1.1 500 Internal Server Error
< Date: Tue, 09 Nov 2021 11:18:33 GMT
< Content-length: 0
<
我的 REST 服务器由于 HTTP 415 不支持的媒体类型而遇到异常。
cURL 似乎没有使用我的“--header”参数? 因为日志显示选择了 Content-Type: application/x-www-form-urlencoded。
我也尝试过使用缩写参数“-h”。
似乎是重复的问题,有关更多示例,请参阅此处。
curl -X POST mockbin.org/request -H "Accept: application/json"
我见过这个。问题不在于服务器端 - 如果您设置为详细,您会看到您正在发送
Content-Type: application/x-www-form-urlencoded
而不是您指定的内容。
我发现你的curl选项中的--http1.1可以让问题消失