54

Curl 默认会添加 和 等Content-type标题User-agent。通常这是一件好事,但我正在尝试测试当这些标头丢失时我们的服务器会做什么。

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

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

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
4

2 回答 2

81

-H标志与要删除的标题一起使用,并且在之后没有内容:

-H, --header LINE   Custom header to pass to server (H)

样本

-H 'User-Agent:'

这将使请求没有User-Agent头(而不是使用空值发送)

于 2015-07-08T12:50:09.187 回答
19

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

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

+1 对@cmlndz 的回答,因为他解释了如何删除单个标题。

您可以通过添加来检查实际发送了哪些标头-v

于 2017-07-13T17:04:05.997 回答