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; // 确保最后执行
}

}

相关推荐
@insist1239 分钟前
信息安全工程师-物理隔离技术基础核心考点解析
开发语言·网络·安全·软考·信息安全工程师·软件水平考试
空中海15 分钟前
02 状态、Hooks、副作用与数据流
开发语言·javascript·ecmascript
Aurorar0rua16 分钟前
CS50 x 2024 Notes C - 09
c语言·开发语言·学习方法
014-code17 分钟前
布隆过滤器:判断“可能存在“和“一定不存在“
java·redis
兔小盈18 分钟前
多线程篇-(二)线程创建、中断与终止
java·开发语言·多线程
jnrjian23 分钟前
Library Cache Load Lock library cache pins are replaced by mutexes
java·后端·spring
hoiii18728 分钟前
基于MATLAB实现内点法解决凸优化问题
开发语言·matlab
abcnull33 分钟前
传统的JavaWeb项目Demo快速学习!
java·servlet·elementui·vue·javaweb
risc12345638 分钟前
【lucene】PostingsEnum跟TermsEnum 的区别是啥?
java·lucene