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);
}