默认情况下,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
答案 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
选项来检查实际发送的邮件头,如上所示。