使用 Spring RestTemplate,出现错误时如何记录响应?

大卫

Spring RestTemplate 可以设置errorHandler,它有处理错误的方法。我有一个这样的错误处理程序

try (BufferedReader buffer = new BufferedReader(new InputStreamReader(clientHttpResponse.getBody()))) {
     final String response = buffer.lines().collect(Collectors.joining("\n"));
     System.out.println(response);
  }

但它总是告诉我输入流很接近。这是一个错误还是我遗漏了什么?

兰吉斯

RestTemplate 的默认错误处理程序DefaultResponseErrorHandler已经读取响应正文并将其设置在HttpStatusCodeException它抛出对象中。

try {
    restTemplate.getForObject("http://...", String.class);
} catch (HttpStatusCodeException e) {
    System.out.println("Received error: " + e.getResponseBodyAsString());
}

如果您想始终在错误时记录响应正文而不需要 catch HttpStatusCodeException,您可以扩展默认错误处理程序。

public static class LoggingErrorHandler extends DefaultResponseErrorHandler {
    @Override
    public void handleError(ClientHttpResponse response) throws IOException {
        try {
            super.handleError(response);
        } catch (HttpStatusCodeException e) {
            System.out.println("Error response body is " + e.getResponseBodyAsString());
            throw e;
        }
    }
}

在实例化 rest 模板时使用上面的错误处理程序。

RestTemplate restTemplate = new RestTemplate();
restTemplate.setErrorHandler(new LoggingErrorHandler());
String response = restTemplate.getForObject("http://...", String.class);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用Spring RestTemplate消耗Page <Entity>响应

来自分类Dev

使用服务进行HTTP响应错误时如何访问“ this”

来自分类Dev

Spring RestTemplate使用XML

来自分类Dev

如何使Armeria在出现“地址已在使用”错误时退出?

来自分类Dev

如何在Spring-Web中使用RestTemplate解析gzip编码的响应

来自分类Dev

如何使用RestTEmplate将spring-data-rest JSON响应与其对象映射

来自分类Dev

如何使用Spring RestTemplate压缩HTTP请求?

来自分类Dev

如何恢复下载使用Spring RestTemplate?

来自分类Dev

如何使用 spring RestTemplate 发送 multipartFile?

来自分类Dev

如何使用spring-restdocs记录HTTP错误代码

来自分类Dev

在spring-batch中,当出现块错误时如何获得异常?

来自分类Dev

如何使用 Spring Webflux 返回 GZIP 响应?

来自分类Dev

如何使用Spring AOP记录方法链接

来自分类Dev

如何使用Spring AOP记录方法链接

来自分类Dev

如何使用Spring RestTemplate发送XML POST请求?

来自分类Dev

如何使用Spring RestTemplate在POST中传递数组?

来自分类Dev

如何在我的Android Spring RestTemplate中使用SSL

来自分类Dev

如何使用RestTemplate调用MultipartFile Spring REST URL

来自分类Dev

如何使用Spring的RestTemplate等效于curl命令?

来自分类Dev

如何使用OAuth2RestTemplate + Spring 4?

来自分类Dev

如何使用spring RestTemplate针对Cloudant API发出测试请求?

来自分类Dev

如何在我的Android Spring RestTemplate中使用SSL

来自分类Dev

使用pdb,如何运行程序并在出现错误时暂停?

来自分类Dev

使用Retrofit 2.0 Observables时出现错误时如何获取Response主体

来自分类Dev

使用pdb,如何运行程序并在出现错误时暂停?

来自分类Dev

使用spring的sessionFactory出现NullPointerException

来自分类Dev

使用Spring MVC在Ajax响应中获取406错误

来自分类Dev

Spring WebServiceTemplate错误地使用Xerces来解组XML响应

来自分类Dev

当Spring之前没有出现错误时,Rails Spring / Rspec / Guard会给出错误

Related 相关文章

  1. 1

    如何使用Spring RestTemplate消耗Page <Entity>响应

  2. 2

    使用服务进行HTTP响应错误时如何访问“ this”

  3. 3

    Spring RestTemplate使用XML

  4. 4

    如何使Armeria在出现“地址已在使用”错误时退出?

  5. 5

    如何在Spring-Web中使用RestTemplate解析gzip编码的响应

  6. 6

    如何使用RestTEmplate将spring-data-rest JSON响应与其对象映射

  7. 7

    如何使用Spring RestTemplate压缩HTTP请求?

  8. 8

    如何恢复下载使用Spring RestTemplate?

  9. 9

    如何使用 spring RestTemplate 发送 multipartFile?

  10. 10

    如何使用spring-restdocs记录HTTP错误代码

  11. 11

    在spring-batch中,当出现块错误时如何获得异常?

  12. 12

    如何使用 Spring Webflux 返回 GZIP 响应?

  13. 13

    如何使用Spring AOP记录方法链接

  14. 14

    如何使用Spring AOP记录方法链接

  15. 15

    如何使用Spring RestTemplate发送XML POST请求?

  16. 16

    如何使用Spring RestTemplate在POST中传递数组?

  17. 17

    如何在我的Android Spring RestTemplate中使用SSL

  18. 18

    如何使用RestTemplate调用MultipartFile Spring REST URL

  19. 19

    如何使用Spring的RestTemplate等效于curl命令?

  20. 20

    如何使用OAuth2RestTemplate + Spring 4?

  21. 21

    如何使用spring RestTemplate针对Cloudant API发出测试请求?

  22. 22

    如何在我的Android Spring RestTemplate中使用SSL

  23. 23

    使用pdb,如何运行程序并在出现错误时暂停?

  24. 24

    使用Retrofit 2.0 Observables时出现错误时如何获取Response主体

  25. 25

    使用pdb,如何运行程序并在出现错误时暂停?

  26. 26

    使用spring的sessionFactory出现NullPointerException

  27. 27

    使用Spring MVC在Ajax响应中获取406错误

  28. 28

    Spring WebServiceTemplate错误地使用Xerces来解组XML响应

  29. 29

    当Spring之前没有出现错误时,Rails Spring / Rspec / Guard会给出错误

热门标签

归档