如何为搭配ReactorClientHttpConnector的WebClient设置最大重定向次数?
WebClient配置最大重定向次数实现方案
你可以直接通过Reactor Netty HttpClient自带的重定向规则配置接口实现需求,无需额外改造现有代码结构,修改后的完整配置如下:
import java.time.Duration; import org.springframework.http.client.reactive.ReactorClientHttpConnector; import org.springframework.web.reactive.function.client.WebClient; import reactor.netty.http.client.HttpClient; // 实例化配置代码 HttpClient client = HttpClient.create() .responseTimeout(Duration.ofMillis(2000)) // 自定义重定向规则,设置最大跳转次数为3 .followRedirect(redirectSpec -> redirectSpec.max(3)); WebClient webClient = WebClient.builder() .baseUrl("https://test.com") .clientConnector(new ReactorClientHttpConnector(client)) .build();
配置说明
- 核心逻辑是调用
followRedirect方法的重载版本,通过RedirectSpec的max()方法指定最大重定向次数,你要求的最多3次跳转直接传参3即可 - 该配置兼容Spring Boot 2.2及以上版本,对应Reactor Netty版本为0.9.x及更新,无需额外引入依赖
- 超过最大重定向次数后,请求不会抛出异常,会直接返回最后一次的3xx响应结果
- 原有响应超时、baseUrl、连接器等配置完全不需要修改,不会影响已有业务逻辑
内容的提问来源于stack exchange,提问作者thmmy95
相关产品推荐
相关产品推荐

