Content-Type в методе GET не заполняется
Установка Content-Type для метода GET не заполняется с помощью компонента Apache Camel-Http.
exchange.getIn().setHeader(Exchange.CONTENT_TYPE, "application/json");
Тогда как то же самое работает при использовании метода POST.
Понял, что для метода GET нет тела. Странно то, что если для body задана пустая строка (""), передается Content-Type, но тип метода также изменяется на POST.
exchange.getIn().setBody("");
2.13.1 - это версия Camel, которую я сейчас использую. Пробовал с последними версиями тоже, все так же. Есть что-то, чего мне не хватает.
Сервис обязывает передать Content-Type.
1 ответ
В источнике Camel есть тест для такого сценария: https://github.com/apache/camel/blob/master/components/camel-http4/src/test/java/org/apache/camel/component/http4/HttpProducerContentTypeTest.java
В обоих тестовых случаях тело должно быть настроено. Вы должны увидеть это в camel-http4:
и верблюд-http тоже:
Если вы решите использовать компонент Http4/http, вам нужно будет указать тело.
Существует также очень старая дискуссия о Набле: http://camel.465427.n5.nabble.com/Http4-Set-Header-Content-Type-not-passing-through-to-the-HTTP-Request-td5746414.html