我不知道为什么我的代码不起作用,我已经尝试过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);
任何帮助?谢谢!!
答案 0 :(得分:3)
从评论中可以清楚地看到,您希望它返回 400 Bad Request 响应。 RestTemplate
会将这些视为“客户端错误”,并会抛出HttpClientErrorException
。
如果你想处理这样的情况,你应该捕获这个例外,例如:
try {
ResponseEntity<String> responseMS = template.exchange(notificationRestService, HttpMethod.DELETE, new HttpEntity<NotificationRestDTO[]>(arrNotif), String.class);
} catch (HttpClientErrorException ex) {
String message = ex.getResponseBodyAsString();
}
在这种情况下(因为您需要String
),您可以使用getResponseBodyAsString()
方法。
ResponseEntity
仅包含数据,以防您的请求成功执行(2xx状态代码,如200,204,...)。因此,如果您只希望在请求未成功时返回消息,您实际上可以执行Mouad在评论中提到的内容,并且您可以使用delete()
的{{1}}方法。