【问题标题】:Spring boot Web-Client Exception handlingSpring boot Web-Client 异常处理
【发布时间】:2019-08-23 01:05:01
【问题描述】:

我正在尝试处理下游服务抛出的异常并捕获错误代码以及错误响应消息。在网上搜索了一些解决方案后,我看到了以下处理异常的常用方法,但我真的不确定我必须在 MyCustomConnectionException 中具体写什么?顺便说一句,当我使用 Resttemplate 时,我可以通过抛出 HttpClientResponseException 轻松处理并捕获所有内容,但这里真的不确定这是如何工作的?我是使用 Webclient 和 Spring 反应技术的新手。 有人可以帮我吗。 ?

        Mono<String> result = client.get()
        .uri("/api/{id}", id).accept(MediaType.APPLICATION_JSON)
        .retrieve()
        .onStatus(HttpStatus::is4xxClientError, response -> {

             return Mono.error(new MyCustomConnectionException());
         })
        .bodyToMono(String.class);

【问题讨论】:

  • 您不需要任何 onStatus() 调用。默认情况下,当收到错误响应时,会返回 Mono.error() 以及 WebClientResponseException 的实例。如您所见,它允许访问状态代码和响应正文

标签: spring spring-boot java-8 spring-webflux spring-webclient


【解决方案1】:

这里的 MyCustomConnectionException 类可以在由于您的 Web 客户端配置错误而发生任何错误时抛出您想要返回的任何自定义消息,例如不正确的 URL 或缺少身份验证密钥。

【讨论】:

猜你喜欢
  • 2020-10-10
  • 2023-03-28
  • 2015-02-23
  • 2016-09-29
  • 1970-01-01
  • 2022-11-22
  • 1970-01-01
  • 2012-10-16
  • 2017-07-15
相关资源
最近更新 更多