Spring Cloud Gateway 响应值获取,网关日志打印

本文介绍了如何在Spring Cloud Gateway中实现全局请求过滤器,用于获取并存储请求体,同时展示了一个响应过滤器的实现,用于解析并处理响应消息。在响应过滤器中,当状态码为200且内容类型匹配时,会读取响应内容并进行处理,如打印或业务操作。此外,还提及了解决POST请求报错的问题。
摘要由CSDN通过智能技术生成

*/

@Component

public class RequestFilter implements GlobalFilter, Ordered {

@Override

public Mono filter(ServerWebExchange exchange, GatewayFilterChain chain) {

return DataBufferUtils.join(exchange.getRequest().getBody()).map(dataBuffer -> {

byte[] bytes = new byte[dataBuffer.readableByteCount()];

dataBuffer.read(bytes);

DataBufferUtils.release(dataBuffer);

return bytes;

}).defaultIfEmpty(new byte[0])

.doOnNext(bytes -> {

// 将请求体存入Attributes

exchange.getAttributes().put(Constant.REQUEST_BODY_CACHE, bytes);

})

.then(chain.filter(exchange));

}

@Override

public int getOrder() {

return -3;

}

}

2.响应过滤器,解析响应消息

import com.bzcst.bop.gateway.common.Constant;

import com.google.common.base.Charsets;

import lombok.extern.slf4j.Slf

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值