如何删除 cURL 发送的默认值 headers?

How can I remove default headers that cURL sends?

Curl 默认添加 header 个,例如 Content-typeUser-agent。通常这是一件好事,但我正在尝试测试当缺少 header 时我们的服务器会做什么。

我的问题是 Content-type header。如果它丢失了,服务器会正​​确地假定用户发送 JSON。然而,curl 实际上添加了缺失的 header 并错误地假设我发布的内容 application/x-www-form-urlencoded。它还发送 / 的 Accept header .

我想这是很好的默认行为,但我基本上不希望它发送我没有指定的 headers。有那个选项吗?

curl -v -X POST 'https://example.com' -d '{...}'

> User-Agent: curl/7.37.1
> Host: domain.com
> Accept: */*
> Content-Length: 299
> Content-Type: application/x-www-form-urlencoded

-H 标志与要删除的 header 一起使用,并且 :

之后没有内容
-H, --header LINE   Custom header to pass to server (H)

样本

-H 'User-Agent:'

这将使请求 没有 User-Agent header(而不是发送一个空的值)

似乎 curl 发送了 3 header。要在没有它们的情况下发出请求,您可以附加参数:

-H 'User-Agent:' -H 'Accept:' -H 'Host:'

+1 到 @cmlndz 的回答,他解释了如何删除单个 header.

您可以通过添加 -v.

查看实际发送了哪些 header