Java 如何设置camel restlet生产者请求的内容类型?

Java 如何设置camel restlet生产者请求的内容类型?,java,apache-camel,restlet,Java,Apache Camel,Restlet,我需要使用简单的Rest服务,但如果我的请求与内容类型:application/x-www-form-urlencoded一起发出,它们的实现就会中断。我需要将其设置为“application/json”,否则将面临状态415 我之所以使用restletproducer组件,是因为它已经在整个过程中得到了使用,到目前为止,它已经达到了功能性和简单性之间的最佳状态。到目前为止 无论如何,尝试在我的路由中设置头似乎没有任何效果,请求的内容类型仍然是application/x-www-form-url

我需要使用简单的Rest服务,但如果我的请求与内容类型:application/x-www-form-urlencoded一起发出,它们的实现就会中断。我需要将其设置为“application/json”,否则将面临状态415

我之所以使用restletproducer组件,是因为它已经在整个过程中得到了使用,到目前为止,它已经达到了功能性和简单性之间的最佳状态。到目前为止

无论如何,尝试在我的路由中设置头似乎没有任何效果,请求的内容类型仍然是application/x-www-form-urlencoded。以下是我的测试代码:

    from("direct:getImg")
            .setHeader(RestletConstants.RESTLET_LOGIN, simple("admin"))
            .setHeader(RestletConstants.RESTLET_PASSWORD, simple("admin"))
            .setHeader(Exchange.CONTENT_TYPE, simple("application/json"))
            .to("restlet:http://requestb.in/12sowlx1?restletMethod=get&throwExceptionOnFailure=false")
我显然遗漏了一些东西,但我找不到任何例子。有人能指出正确的方法吗


谢谢

在调用restlet并在exchange中设置内容类型之前,应该先调用处理器。大概是这样的:

from("direct:getImg").process(new Processor() {
        @Override
        public void process(Exchange exchange) throws Exception {
            exchange.getIn().setHeader(Exchange.CONTENT_TYPE, MediaType.APPLICATION_XML);
        }
    }).to("restlet:http://requestb.in/12sowlx1?restletMethod=get&throwExceptionOnFailure=false");

我已经测试过了,它是有效的。让我知道结果。

setHeader(Exchange.CONTENT\u类型,常量(“application/json”))可以工作。让我知道你的结果。@NaveenRaj-同样的问题。没有效果。您可以在这里看到我的传出请求的详细信息:(我原始任务中的请求已过期)我想必须在outbond消息中设置标头,即我们需要使用exchange.getOut().setHeader(……)。在评论中编辑相同的内容。