public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
Flux<DataBuffer> body = exchange.getRequest().getBody();
//Return different according to body content...
if (condition) {
return chain.filter(exchange);
} else {
return Mono.empty();
}
}
用spring 5在spring-webflux中如何获取请求的body做一些自定义判断?
最佳答案
你的问题不是很清楚。我假设您的疑问是您在代码片段注释中的内容。
可能有不同的方法来实现你想要的。一种简单的方法是使用 flatMap运算符(operator)。大致如下:
public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
Flux<DataBuffer> body = exchange.getRequest().getBody()
.flatMap(data -> {
if (condition) {
return chain.filter(exchange);
}
return Mono.empty();
});
//...
}
关于spring-webflux - 在 webflux 中读取请求正文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51778234/