Java 骆驼删除方法中不支持内容类型?
如何在Camel DELETE方法中发送内容类型。我添加了以下方法,但它不能正常工作Java 骆驼删除方法中不支持内容类型?,java,apache-camel,Java,Apache Camel,如何在Camel DELETE方法中发送内容类型。我添加了以下方法,但它不能正常工作 from("direct:start") .setHeader(Exchange.HTTP_METHOD, simple("DELETE")) .setHeader(Exchange.CONTENT_TYPE, simple("application/xml")) .setHeader(Exchange.HTTP_URI, simple("http://02.02.02.02:8080/rest/delete
from("direct:start")
.setHeader(Exchange.HTTP_METHOD, simple("DELETE"))
.setHeader(Exchange.CONTENT_TYPE, simple("application/xml"))
.setHeader(Exchange.HTTP_URI, simple("http://02.02.02.02:8080/rest/delete/student/688187"))
.to("http://emptyhost");
您能帮我解决这个问题吗?在删除操作中,不发送任何内容,因此不需要
交换.content\u TYPE
属性
请试一试
from("direct:start")
.setHeader(Exchange.HTTP_METHOD, simple("DELETE"))
.to("http://02.02.02.02:8080/rest/delete/student/688187");
或
顺便说一下,在URL中使用delete
不是RESTful方式,应该使用
编辑:
Camel不会将主体转移到DELETE
操作的请求中,这一点可以从深入研究源代码中看出。改用PUT
操作。
看看我对你另一个的回答 如前所述,若HTTP方法中的请求方法是delete,则camel可以处理body
http4组件中带有deleteWithBody选项的驼峰版本2.19.0。我们可以将其添加到URL中,并使用http方法,因为apache camel通过生产者模板支持删除内容类型/正文内容,查询参数为“deleteWithBody”,默认情况下,它将为false
String endpoint = https://testuri.com/resource;
endpoint = https://testuri.com/resource?deleteWithBody=true;
Exchange exchange;
exchange.getIn.setBody("test");
exchange.getIn.setHeader("Content-Type","application/json");
ProducerTemplate template = exchange.set(endpoint, exchange);
我能理解你想表达的意思。但根据我们的要求,我们正在发送内容类型以删除特定记录。你能给我一个主意吗?@AzhaguvelA With
DELETE
正文内容没有转移。在我的回答中,我添加了一个指向你的另一个SO的链接。
String endpoint = https://testuri.com/resource;
endpoint = https://testuri.com/resource?deleteWithBody=true;
Exchange exchange;
exchange.getIn.setBody("test");
exchange.getIn.setHeader("Content-Type","application/json");
ProducerTemplate template = exchange.set(endpoint, exchange);