代码之家  ›  专栏  ›  技术社区  ›  Tomasz Bawor

不分析对象的Spring ResponseErrorHandler

  •  1
  • Tomasz Bawor  · 技术社区  · 6 年前

    RestTemplate 200OK

    默认情况下,我们有 ResponseErrorHandler 对所有人都有反应 4xx 5xx 包含一个JSON字段 errors

    我创建了一个自定义错误处理程序,并使用以下方法将其绑定到我的rest模板中:

    restTemplate.errorHandler(new MyCustomErrorHandler());
    

    我也推翻了 hasError()

    这是处理错误的好方法吗?我应该解析两次响应吗?我为此类问题寻求干净的解决方案,但我希望避免每次使用外部服务时对消息进行两次解析

    1 回复  |  直到 6 年前
        1
  •  1
  •   Ahmed Ashour    6 年前

    只有在返回错误状态时才会调用错误处理程序,200不是错误状态,因此不会处理它。

    您可以通过重写hasError方法ResponseErrorHandler来检查错误消息或任何错误指示来更改此行为。

    public class MyCustomErrorHandler implements ResponseErrorHandler {
    
    @Override
    public boolean hasError(ClientHttpResponse httpResponse) 
            throws IOException {
    
        //TODO check your criteria for error
    }