WebClient

WebClient属于WebFlux的一部分,是一组非阻塞、响应式API,主要用于HTTP请求。WebFlux的客户端和服务端在HTTP通信方面依赖的是同一套非阻塞模块。
默认情况下,WebClient底部通信使用的是Reactor Netty框架,同时它也支持其他通信框架使用插件式的方式整合进来(使用ClientHttpConnector)。
1、配置
在代码中创建WebClient 可以通过以下静态方法:

WebClient.create()

WebClient.create(String baseUrl)

以上方法使用的是默认配置下的Reactor Netty的HttpClient ,并且需要依赖:io.projectreactor.netty:reactor-netty
WebClient.builder()方法也提供以下几个参数可供用户配置:

uriBuilderFactory:
defaultHeader: HTTP请求头

defaultCookie: 设置Cookies.

defaultRequest

filter: 客户端过滤器,可以对每个请求进行统一的处理

exchangeStrategies: HTTP message reader/writer customizations.

clientConnector: HTTP client library settings.

配置示例:

ExchangeStrategies strategies = ExchangeStrategies.builder()
            .codecs(configurer -> {
                // ...
            })
            .build();

    WebClient client = WebClient.builder()
            .exchangeStrategies(strategies)
            .build();

WebClient 实例一旦被创建,本身是无法修改的;但可以通过创建一个“副本”的方法进行修改:

WebClient client1 = WebClient.builder()
            .filter(filterA).filter(filterB).build();

    WebClient client2 = client1.mutate()
            .filter(filterC).filter(filterD).build();

    // client1 has filterA, filterB

    // client2 has filterA, filterB, filterC, filterD

来源:https://docs.spring.io/spring/docs/current/spring-framework-reference/web-reactive.html#webflux-client

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值