首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Spring Webclient :当http状态码为200时如何获取出错的正文

Spring WebClient 是 Spring Framework 提供的一种非阻塞的、基于响应式流的 HTTP 客户端,它可以用来发送 HTTP 请求并接收响应。当 HTTP 状态码为 200 时,表示请求成功,而如果请求成功但返回的正文中包含错误信息,我们可以通过以下步骤来获取出错的正文:

  1. 创建 WebClient 对象:
代码语言:txt
复制
WebClient webClient = WebClient.builder().baseUrl("http://example.com").build();
  1. 发送请求并处理响应:
代码语言:txt
复制
webClient.get()
    .uri("/api/endpoint")
    .retrieve()
    .onStatus(HttpStatus::isError, response -> {
        // 当 HTTP 状态码为错误状态时的处理逻辑
        return response.bodyToMono(String.class).flatMap(body -> {
            // 获取出错的正文内容
            System.out.println("错误正文:" + body);
            // 抛出自定义异常或进行其他操作
            throw new CustomException("请求出错:" + body);
        });
    })
    .bodyToMono(String.class)
    .subscribe(responseBody -> {
        // 正常处理响应内容
        System.out.println("响应正文:" + responseBody);
    });

在上述代码中,我们使用 onStatus 方法来处理 HTTP 状态码为错误状态时的情况。通过调用 response.bodyToMono(String.class) 方法,我们将响应体转换为字符串并获取出错的正文内容。你可以根据具体的业务需求进行自定义异常抛出或其他处理操作。

推荐的腾讯云相关产品:无

Spring WebClient 是 Spring Framework 中的核心组件,与云计算服务商无直接关联,因此在这里没有腾讯云的相关产品推荐。

更多关于 Spring WebClient 的详细信息和使用示例,请参考官方文档:Spring WebClient

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 精讲响应式WebClient第6篇-请求失败自动重试机制

    在上一篇我们为大家介绍了WebClient的异常处理方法,我们可以对指定的异常进行处理,也可以分类处理400-499、500-599状态码的HTTP异常。 我们本节为大家介绍的实际上是另外一种异常处理机制:请求失败之后自动重试。当WebClient发起请求,没有得到正常的响应结果,它就会每隔一段时间再次发送请求,可以发送n次,这个n是我们自定义的。n次请求都失败了,最后再将异常抛出,可以通过我们上一节交给大家的方法进行异常处理。也就是针对连接超时异常、读写超时异常等,或者是HTTP响应结果为非正常状态码(不是200状态码段),都在自动重试机制的范畴内。

    03

    http协议理解

    对于HTTP协议,想必大家都不陌生,在工作中经常用到,特别是针对移动端和前端开发人员来说,要获取服务端数据,基本走的网络请求都是基于HTTP协议,特别是RESTFUL + JSON 这种搭配特别主流。那如果让大家具体讲讲HTTP协议背后的历史、原理、交互流程、与HTTPS区别、身份认证、Web攻防技术等等信息,大家能讲的出来吗,反正我讲的也是一知半解,虽然会经常看这方面的文章,但也只是在具体项目进行开发过程中碰到对某个概念不清楚,才会去特意看下,却没有特意去总结归纳为一直知识点,没有完整的表达描述过,其实对这个知识点还是没掌握好的,所以用写作方式来进行阐述是很好一个方式,目前也正在践行着。

    02
    领券