使用Apache Camel-Http组件不会为GET方法设置Content-Type。
exchange.getIn().setHeader(Exchange.CONTENT_TYPE, "application/json");
虽然使用POST方法时也一样。
理解方法GET没有正文。奇怪的是,如果body被设置为空字符串("")正在传递Content-Type但方法类型也会更改为POST。
exchange.getIn().setBody("");
2.13.1是我目前正在使用的Camel版本。尝试了最新版本,仍然是一样的。有什么我想念的东西。
服务要求传递Content-Type。
答案 0 :(得分:0)
在Camel源代码中,有一种针对此类场景的测试:https://github.com/apache/camel/blob/master/components/camel-http4/src/test/java/org/apache/camel/component/http4/HttpProducerContentTypeTest.java
在两个测试案例中都需要设置正文。你应该在camel-http4中看到这个:
和camel-http也是:
如果你决定使用Http4 / http组件,那么你需要设置一个体。
关于nabble还有这个非常古老的讨论: http://camel.465427.n5.nabble.com/Http4-Set-Header-Content-Type-not-passing-through-to-the-HTTP-Request-td5746414.html