УДАЛИТЬ в Spring RestTemplate с HttpEntity<Список>
Я не знаю, почему мой код не работает, я пытался с Почтальоном и работает нормально:
Но с 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);
Любая помощь?? Спасибо!!
1 ответ
Из комментариев стало ясно, что вы ожидаете, что он вернет ответ 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, ...). Таким образом, если вы ожидаете, что сообщение будет возвращено только в том случае, если запрос не был успешным, вы можете сделать то, что Муад упомянул в комментариях, и вы можете использовать delete()
метод RestTemplate
,