5
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-webflux 中使用 spring 5 进行一些自定义判断?

4

1 回答 1

1

你的问题并不完全清楚。我假设您的疑问是您在代码片段注释中添加的内容。

可能有不同的方法来实现你想要的。一种简单的方法是使用flatMap运算符。有点如下:

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();
       });
  //...
}  
于 2018-08-10T23:52:29.420 回答