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