spring-webflux - 在 webflux 中读取请求正文
问题描述
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 进行一些自定义判断?
解决方案
你的问题并不完全清楚。我假设您的疑问是您在代码片段注释中添加的内容。
可能有不同的方法来实现你想要的。一种简单的方法是使用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();
});
//...
}
推荐阅读
- android - 在 ListView 顶部添加一个配置文件框
- android - 每次修改时内核编译错误
- python - 将生成器/模拟函数传递给遗留模块中的方法
- c# - 为什么我的 C# 进程有时会工作,有时会无限期挂起?
- go - 使用地图的最近未使用的算法
- javascript - 如何获取特定标签的标题?
- javascript - Angular 表单组:找不到具有未指定名称属性的控件
- mysql - mysql 5.6.10:更新前触发器仅适用于常量?
- mongodb - 在 MongoDB Spring Data 中使用多个方面
- app-inventor - App Inventor WebViewer 无法全屏打开