Как получить пользовательские сообщения при использовании response.getStatusText () - PullRequest
0 голосов
/ 25 января 2019

HttpClientErrorException всегда дает мне следующий результат:

HttpClientErrorException: 400 null

... и нулевая часть это то, что беспокоит меня. Разве это не должно быть место, где должно быть сообщение об исключении на стороне сервера?

Я проверил исходный код клиента HTTP, чтобы увидеть, где выдается исключение на стороне клиента. Это выглядит так:

throw new HttpClientErrorException(statusCode, response.getStatusText(), response.getHeaders(), getResponseBody(response), getCharset(response));

Отладка этого вызова показала, что response.getStatusText() является нулевым в моем случае.

У меня вопрос: как спроектировать ResponseEntity на стороне сервера таким образом, чтобы HTTP-клиент находил сообщение об исключении на стороне сервера в response.getStatusText () вместо null?

Вот мое исключение

 @ExceptionHandler({ MyCustomException.class })
 public ResponseEntity<String> handleException(final HttpServletRequest 
 req, final MyCustomException e) {
 HttpHeaders headers = new HttpHeaders();
 headers.set("Content-type", "text/plain");
 String body = e.toString();
 return new ResponseEntity<>(body, headers, HttpStatus.BAD_REQUEST);
* *} Тысяча двадцать-один
...