Gateway获取下游最终响应码

import org.springframework.cloud.gateway.filter.GatewayFilterChain;

import org.springframework.cloud.gateway.filter.GlobalFilter;

import org.springframework.core.Ordered;

import org.springframework.http.HttpStatus;

import org.springframework.stereotype.Component;

import org.springframework.web.server.ServerWebExchange;

import reactor.core.publisher.Mono;

@Component

public class DownstreamStatusLogFilter implements GlobalFilter, Ordered {

复制代码
@Override
public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
    return chain.filter(exchange)
            .doAfterTerminate(() -> {
                // 获取最终的响应状态码
                HttpStatus status = exchange.getResponse().getStatusCode();
                if (status != null) {
                    System.out.println("下游状态码: " + status.value());
                }
            });
}

@Override
public int getOrder() {
    return Ordered.LOWEST_PRECEDENCE; // 确保最后执行
}

}

相关推荐
旋风小飞棍4 分钟前
如何在sheel中运行spark
大数据·开发语言·scala
枣伊吕波10 分钟前
第六节第二部分:抽象类的应用-模板方法设计模式
android·java·设计模式
xinxiyinhe13 分钟前
内存泄漏与OOM崩溃根治方案:JVM与原生内存池差异化排查手册
java·开发语言·jvm
心向阳光的天域17 分钟前
黑马Java跟学.最新AI+若依框架项目开发(一)
java
愚润求学22 分钟前
【Linux】基础 IO(一)
linux·运维·服务器·开发语言·c++·笔记
what_201822 分钟前
分布式链路跟踪
java·运维·分布式
oliveira-time30 分钟前
ArrayList和LinkedList区别
java·开发语言
潮流coder33 分钟前
IntelliJ IDEA给Controller、Service、Mapper不同文件设置不同的文件头注释模板、Velocity模板引擎
java·ide·intellij-idea
yutian060636 分钟前
C语言中的宏
c语言·开发语言
码农飞哥40 分钟前
互联网大厂Java求职面试实战:Spring Boot与微服务场景深度解析
java·数据库·spring boot·安全·微服务·消息队列·互联网医疗