WebClient是Spring WebFlux模块提供的一个非阻塞的基于响应式编程的进行HTTP请求的客户端工具。
引入WebFlux依赖则可使用WebClient:
1 | <dependency> |
1. 创建WebClient实例
WebClient接口提供了三个不同的静态方法(create(),create(String baseUrl),builder())和一个内部类(WebClient.Bulider)来创建WebClient实例:
1 | /** |
2. GET 请求
2.1 发起GET请求
1 |
|
2.2 GET请求参数传递
1 |
|
3. POST请求
3.1 发起POST请求
1 |
|
3.2 POST请求参数传递
1 |
|
4. 请求异常处理
使用WebClient发送请求时, 如果接口返回的不是200状态(而是4xx、5xx这样的异常状态),则会抛出WebClientResponseException异常。
1 |
|
5. Exchange获取完整的请求响应结果
前面我们都是使用retrieve()方法是直接获取响应体的内容。
使用exchangeToMono()和exchangeToFlux()方法获取完整的代表响应结果的对象,通过该对象我们可以获取响应码、contentType、contentLength、响应消息体等。
1 |
|
6. WebClient在Spring Cloud中的使用
引入依赖:
1 | <dependency> |
编写配置,创建WebClient.Bulider类型的Bean,加上@LoadBalaced为WebClient增加负载均衡的支持。
1 | import org.springframework.cloud.client.loadbalancer.LoadBalanced; |
编写Controller,客户端实现访问服务端资源,并对外提供访问接口:
1 |
|
原文链接: http://chaooo.github.io/2021/03/20/spring-reactive-http.html
版权声明: 转载请注明出处.