Java 骆驼删除方法中不支持内容类型?

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

如何在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/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);