【发布时间】:2020-09-22 17:22:01
【问题描述】:
我有一个代表 JSON 的String:
[{"type":"ERROR","message":"some error message"}]
ex.contentUTF8() 在以下代码中返回此 String:
@RestControllerAdvice
@RequiredArgsConstructor
public class ControllerExceptionHandler {
@ExceptionHandler(FeignException.class)
@ResponseBody
public String afterThrowing(FeignException ex, HttpServletResponse response) {
response.setStatus(ex.status());
return ex.contentUTF8();
}
}
虽然 HTTP 客户端没有收到 JSON 响应。相反,它会获取带有响应正文的 HTML,即String。我怎样才能返回 JSON?我需要反序列化那个String吗?
更新
对客户端的响应必须完全是表示(将被序列化为)String 由ex.contentUTF8() 返回的 JSON 对象:
[{"type":"ERROR","message":"some error message"}]
因此,像 ErrorDto(在一些答案中提供)这样的包装对象将不起作用。
【问题讨论】:
标签: json spring spring-boot spring-mvc spring-cloud-feign