我是 Spring Cloud Gateway 的新手(spring boot 2.0.5.RELEASE)。我尝试从 Web 过滤器中读取请求正文,但请求只是卡住了,无法通过链。示例代码:
@Component
public class TestFilter implements GlobalFilter, Ordered {
private static final Logger logger = LoggerFactory.getLogger(TestFilter.class);
@Override
public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
ServerHttpRequest serverHttpRequest = exchange.getRequest();
try {
/* whenever I put the following line. The request cannot get through */
ByteBuffer byteBuffer = Mono.from(serverHttpRequest.getBody()).toFuture().get().asByteBuffer();
} catch (Exception ex) {
ex.printStackTrace();
}
return chain.filter(exchange);
}
}
如果我删除 getBody() 行,一切正常。有什么线索吗?谢谢!