如何删除curl发送的默认标头

时间:2015-07-08 12:47:17

标签: curl

默认情况下,Curl会添加内容类型和用户代理等标头。通常这是一件好事,但我正在尝试测试当这些标头丢失时我们的服务器做了什么。我的问题是内容类型标题。如果丢失,服务器会正​​确地假定用户发送了json。但是,curl实际上添加了缺少的标题,并错误地假定我发布的内容是application / x-www-form-urlencoded。它还发送 / 的Accept标头。我想这是很好的默认行为,但我基本上希望它不发送我没有指定的标头。有没有选择呢?

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

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

2 个答案:

答案 0 :(得分:35)

在要删除的标题上使用-H标记,在:

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

样品

-H 'User-Agent:'

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

答案 1 :(得分:6)

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

curl 172.20.11.100:8080/healthz -v -H 'User-Agent:' -H 'Accept:' -H 'Host:'

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

您可以通过添加-v选项来检查实际发送的邮件头,如上所示。