gpt4 book ai didi

java - @ControllerAdvice 响应正文始终为空

转载 作者:行者123 更新时间:2023-11-30 06:21:58 25 4
gpt4 key购买 nike

我想将响应正文设置为异常的错误消息:

@ControllerAdvice
public class RestResponseEntityExceptionHandler extends ResponseEntityExceptionHandler {

@ExceptionHandler(value = EntityNotFoundException.class)
protected ResponseEntity<Object> handleNotFound(EntityNotFoundException ex, WebRequest request) {

System.out.println(ex.getMessage());
return handleExceptionInternal(ex, ex.getMessage(), new HttpHeaders(), HttpStatus.I_AM_A_TEAPOT, request);

}
}

我正在使用 restTemplate.getForEntity(uri, String.class) 对其进行测试,但是我似乎得到的只是 418 null 响应。

我知道执行进入此处,因为响应是 418,并且我知道该消息不为空,因为它正在打印我想要的值。

感谢任何帮助

最佳答案

您没有提供有关 RestTemplate 配置或调用代码的信息,因此我将做出一些假设,如果其中有任何错误,您可以纠正我。

  1. 您的 RestTemplate 正在使用 DefaultResponseErrorHandler
  2. 您正在使用通用 catch (Exception ex) block

如果这些都是 true,那么您的 RestTemplate 在遇到 4XX 状态代码时将抛出 HttpClientErrorException。您可以找到代码here .

如果您仅使用通用 catch (Exception ex) block ,则响应正文将不可用。您可以通过添加 catch(HttpClientErrorException ex) block 并从 ex.getResponseBodyAsString()

获取内容来访问响应正文

关于java - @ControllerAdvice 响应正文始终为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47957233/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com