我尝试使用HttpMethod的DELETE方法。我使用的代码是
response = restTemplate.exchange(url, HttpMethod.DELETE, requestEntity, Response.class);我也在使用JacksonJson来映射json。删除功能返回应该映射到Response类的json。但是调用上面的代码行不通,会给出响应代码为500的内部服务器错误。但是,同样的应用程序接口可以在浏览器中与RESTClient一起工作,所以我猜有一些我没有正确做的事情。
发布于 2013-09-03 13:31:03
经过进一步的研究,发现DELETE方法似乎不支持请求体。因为我们可以控制REST API,所以我们更改了请求正文,将其作为参数添加。完成此更改后,请求即可正常工作。
希望这能帮助到别人。
发布于 2017-10-17 23:12:27
我也想在这里插一句(为后人记录我的解决方案)
我也在使用spring的rest模板,还试图使用有效负载执行一个delete请求,我也希望能够从服务器端获得响应代码
免责声明:我使用的是Java 7
我的解决方案也是基于这里的post,所以,基本上你最初声明一个POST请求并添加一个http头来覆盖请求方法:
RestTemplate tpl = new RestTemplate();
/*
* http://bugs.java.com/view_bug.do?bug_id=7157360
* As long as we are using java 7 we cannot expect output for delete
* */
HttpHeaders headers = new HttpHeaders();
headers.add("X-HTTP-Method-Override", "DELETE");
HttpEntity<Collection<String>> request = new HttpEntity<Collection<String>>(payload, headers);
ResponseEntity<String> exchange = tpl.exchange(uri, HttpMethod.POST, request, String.class);https://stackoverflow.com/questions/18532240
复制相似问题