我不知道为什么我的代码不起作用,我尝试过 Postman 并且工作正常:
但与RestTemplate
当它使用相同的端点时我无法得到响应...。
ResponseEntity<String> responseMS = template.exchange(notificationRestService, HttpMethod.DELETE, new HttpEntity<NotificationRestDTO[]>(arrNotif), String.class);
我尝试过List
反而Array[]
当我做了一个PUT
请求它工作正常,但只有一个对象:
ResponseEntity<String> responseMS = template.exchange(notificationRestService, HttpMethod.PUT, new HttpEntity<NotificationRestDTO>(notificationDTO), String.class);
有什么帮助吗?谢谢!!
从评论中可以清楚地看出,您希望它返回400 错误请求回复。RestTemplate
会将这些视为“客户端错误”,并且会抛出HttpClientErrorException http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/client/HttpClientErrorException.html.
如果你想处理这样的情况,你应该捕获这个异常,例如:
try {
ResponseEntity<String> responseMS = template.exchange(notificationRestService, HttpMethod.DELETE, new HttpEntity<NotificationRestDTO[]>(arrNotif), String.class);
} catch (HttpClientErrorException ex) {
String message = ex.getResponseBodyAsString();
}
在这种情况下(因为您期望String
),您可以使用getResponseBodyAsString() http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/client/RestClientResponseException.html#getResponseBodyAsString-- method.
The ResponseEntity
仅包含您的请求成功执行时的数据(2xx 状态代码,如 200、204...)。因此,如果您只希望在请求未成功时返回一条消息,您实际上可以执行 Mouad 在评论中提到的操作,并且可以使用delete()
的方法RestTemplate
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)