我需要用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");
答案 0 :(得分:1)
正如我在您的其他SO中所述,请勿使用DELETE
而是PUT
操作。
修改强>
深入研究HttpProducer
的源代码,如果methodToUse.isEntityEnclosed()
为true
(第367行),您可以看到请求已填写。但是,这仅适用于PUT
和POST
,因为只有那些方法实现扩展了类EntityEnclosingMethod
。不幸的是,DELETE
并非如此。
答案 1 :(得分:0)
以防万一,该功能可从Camel版本2.19.0中的http4组件中的deleteWithBody选项获得。我们可以将其添加到如下所示的URL中。
.to(http4://10.1.1.1:8080/rest/student/delete/1029?deletewithBody=true)
供参考