如何使用webclient在Apache CXF JAX-RS中发送DELETE请求?

问题描述:

我想打电话webclient.delete(deleteBody)类似于POST。如何使用webclient在Apache CXF JAX-RS中发送DELETE请求?

WebClient client = WebClient.create(getUrl()); 
client = client.type("application/json").accept("application/json"); 
HTTPConduit conduit = WebClient.getConfig(client).getHttpConduit(); 
conduit.getClient().setReceiveTimeout(getApiTimeout()); 
Response resp = client.post(postData); 

但是没有采用deleteBody的方法。

我甚至使用webclient.invoke("DELETE", deletBody)但这会引发500 HTTP错误。

这是我删除的身体:

{"password":"1ad1ad","username":11111111} 

但我curl命令审判删除其工作:

curl -q -H "Accept: application/json" -H "Content-type: application/json" -X DELETE -d @del.json http://d.eze.cc/api/pd/xxxxx/DEL0/ 

你是正确的CXF WebClient不支持在发送体DELETE请求。

  1. 这是好的,因为发送请求的请求的主体没有意义。看到这个问题:Is an entity body allowed for an HTTP DELETE request?
  2. 对于500错误,你可以看看服务器日志。服务器端REST如何实现?