Я использую httpResp.sendError(400, "You are missing customer id")
, чтобы отправить ответ обратно
Когда я пытаюсь получить сообщение на стороне клиента (используя шаблон Rest для вызова конечной точки).
Однако, печать HttpClientErrorException всегда дает мне следующий результат:
HttpClientErrorException: 400 null
Я вижу, что у меня HttpClientErrorException.getResponseBody
есть вся информация о отметке времени, сообщении и т. Д. Но HttpClientErrorException.getStatusText
всегда пуст.
У меня вопрос: как спроектировать ResponseEntity на стороне сервера таким образом, чтобы HTTP-клиент находил сообщение об исключении на стороне сервера в response.getStatusText () вместо null?
вот код, который у меня есть
try{
ResponseEntity<String> responseEntity = restTemplate.exchange(uri, HttpMethod.POST, requestEntity, String.class );
System.out.println(responseEntity.getBody());
}
catch (HttpClientErrorException | HttpServerErrorException e) {
if (e.getStatusCode().equals(HttpStatus.UNAUTHORIZED) || e.getStatusCode().equals(HttpStatus.FORBIDDEN)) { System.out.println("Response Body returned:");
System.out.println(e.getResponseBodyAsString());
System.out.println("%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%");
System.out.println("Status text is:");
System.out.println(e.getStatusText());
} else if (e.getStatusCode().equals(HttpStatus.BAD_REQUEST)) {
System.out.println("Response Body returned:");
System.out.println(e.getResponseBodyAsString());
System.out.println("-------------------------------");
System.out.println("Status text is:");
System.out.println(e.getStatusText());
} else {
throw e;
}
}
Версия загрузки Sprint: 2.1.0.RELEASE