如何使用Apache Camel中的BODY内容调用Rest API DELETE操作?

时间:2014-04-05 04:59:43

标签: java apache-camel

我需要用body内容调用rest DELETE操作。我有其他方法可以做到这一点,但这是我们的要求。我尝试了以下方法,但无法获得输出。你能给我一个IDEA来实现这个目标吗?

这是我的代码:

from("direct:start")
.setHeader(Exchange.HTTP_METHOD, simple("DELETE"))
.setHeader(Exchange.CONTENT_LENGTH, simple("64"))
.setBody(simple("<stundent>...</student>")))
.to("http://10.1.1.1:8080/rest/student/delete/1029");

2 个答案:

答案 0 :(得分:1)

正如我在您的其他SO中所述,请勿使用DELETE而是PUT操作。

修改

深入研究HttpProducer的源代码,如果methodToUse.isEntityEnclosed()true(第367行),您可以看到请求已填写。但是,这仅适用于PUTPOST,因为只有那些方法实现扩展了类EntityEnclosingMethod。不幸的是,DELETE并非如此。

答案 1 :(得分:0)

以防万一,该功能可从Camel版本2.19.0中的http4组件中的deleteWithBody选项获得。我们可以将其添加到如下所示的URL中。

.to(http4://10.1.1.1:8080/rest/student/delete/1029?deletewithBody=true)

供参考