基于已在 webfilter 上添加的国家/地区,我需要将请求修改到不同的服务器。
我已经将带有 webfilter 的上下文添加到了链中,我可以在这里看到它,但是我没有找到如何根据链上的信号上下文修改接收到的 clientRequest。如果有人已经找到了一种方法并且可以提供帮助:
return webClient
.filter(
ExchangeFilterFunction
.ofRequestProcessor(
new Function<ClientRequest, Mono<ClientRequest>>() {
@Override
public Mono<ClientRequest> apply(ClientRequest clientRequest) {
return Mono.just(
ClientRequest.from(clientRequest).build())
.doOnEach(new Consumer<Signal<ClientRequest>>() {
@Override
public void accept(Signal<ClientRequest> signal) {
var countryContext = signal.getContext()
.getOrEmpty(CountryContext.COUNTRY_CONTEXT_HEADER_REST).get();
System.out.println(countryContext);
}
});
}
}
)
).build();