spring-webflux - 在 Spring Webflux 中捕获响应
问题描述
有没有办法在 Spring Webflux 中捕获响应体。我知道这违反了反应的原则,但是我需要捕获正文并返回响应。我正在使用 ExchangeFilterFunction。
public Optional<ExchangeFilterFunction> buildEnricher() {
return Optional.of(ExchangeFilterFunction.ofResponseProcessor(clientResponse -> {
return clientResponse.bodyToMono(String.class)
.flatMap(body -> {
System.out.println(body);
return Mono.just(clientResponse);
});
}));
这最终会消耗正文并发送一个空的客户端响应。反正我也可以把尸体送回去吗?
解决方案
您可以选择克隆客户端响应。
ClientResponse responseClone = ClientResponse.from(clientResponse)
您现在可以从体内排出responseClone
并返回Mono.just(clientResponse)
推荐阅读
- c++ - 3d C 阵列组装
- typescript - webpack:术语“webpack”未被识别为 cmdlet、函数、脚本文件或可运行程序的名称
- c - C 查询 DropBox
- javascript - 语法错误,ajax 调用时无法识别的表达式
- sql - 如何根据年和周列排除周?
- unity3d - 在我的 C# 代码中使用 Excel 中的大数据的最有效方法是什么?
- python - 如何从 csv 读取第一列并分成多维数组
- python - xarray - 使用 groupby 对一年中的每一天的气候每小时 netCDF 数据进行分组
- node.js - 猫鼬突然坏了,没有得到回调
- loops - 将整数值相加并在不同的类中使用它们