Как удалить заголовки по умолчанию, которые скручиваются

Керл по умолчанию добавляет заголовки, такие как Content-type и User-agent. Обычно это хорошо, но я пытаюсь проверить, что делает наш сервер, когда эти заголовки отсутствуют. Моя проблема связана с заголовком содержимого. Если он отсутствует, сервер правильно предполагает, что пользователь отправил json. Однако curl фактически добавляет отсутствующий заголовок и неправильно предполагает, что контент, который я отправляю в приложении /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

Ответ 1

Используйте флаг -H с заголовком, который вы хотите удалить, и без содержимого :

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

Пример

-H 'User-Agent:'

Это сделает запрос без заголовка User-Agent (вместо отправки его с пустым значением)

Ответ 2

Кажется, что curl отправляет 3 заголовка. Чтобы выполнить запрос без них, вы можете:

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

+1 в ответ @cmlndz, поскольку он объясняет, как удалить один заголовок.

Вы можете проверить, какие заголовки отправлены, добавив опцию -v, как показано выше.