使用response.getStatusText()时如何获取自定义消息

时间:2019-01-25 00:49:53

标签: spring http resttemplate

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

}

0 个答案:

没有答案