问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如果在拦截请求中,我想拦截post方式提交的方法怎么配置

发布网友 发布时间:2022-04-11 07:11

我来回答

1个回答

热心网友 时间:2022-04-11 08:40

摘要公司的开发采用了 gateway 作为微服务的网关,笔者使用中发现,gateway 网关拦截 POST 请求的参数非常麻烦,百度了很多种方法,有的获取不到,有的被读取到了,但是在往下居然获取不到了,千辛万苦终于找到了比较好的方式,以下做个笔记相关坑过滤器中的 Body 只能被读取一次,读取后之后在就读取不到了(坑爹)由于异步问题,直接获取参数内容可能会为空,并且不同的 SpringBoot 版本,有的能获取到,有的获取不到(坑爹的异步)由于异步问题,参数采用消费的模式,一但被读取使用后,后续就将无法再次读取到最终处理方式思路先读取参数,并全局保存到 ServerWebExchange 中读取完成后,重新构建请求,解决只能读取一次的问题在下级过滤器中通过 ServerWebExchange 对象获取代码读取参数的过滤器首先在一步回调中读取参数,防止获取不到保存到 exchange 中重新构造请求,防止参数失效@Componentpublic class ReqPostBodyFilter implements Ordered, GlobalFilter { @Override public int getOrder() { return 1; } @SuppressWarnings("NullableProblems") @Override public Mono filter(ServerWebExchange exchange, GatewayFilterChain chain) { ServerHttpRequest req = exchange.getRequest(); ServerHttpResponse res = exchange.getResponse(); String method = req.getMethodValue(); MediaType ct = req.getHeaders().getContentType(); if (HttpMethod.POST.matches(method) { return DataBuff咨询记录 · 回答于2021-11-26如果在拦截请求中,我想拦截post方式提交的方法怎么配置公司的开发采用了 gateway 作为微服务的网关,笔者使用中发现,gateway 网关拦截 POST 请求的参数非常麻烦,百度了很多种方法,有的获取不到,有的被读取到了,但是在往下居然获取不到了,千辛万苦终于找到了比较好的方式,以下做个笔记相关坑过滤器中的 Body 只能被读取一次,读取后之后在就读取不到了(坑爹)由于异步问题,直接获取参数内容可能会为空,并且不同的 SpringBoot 版本,有的能获取到,有的获取不到(坑爹的异步)由于异步问题,参数采用消费的模式,一但被读取使用后,后续就将无法再次读取到最终处理方式思路先读取参数,并全局保存到 ServerWebExchange 中读取完成后,重新构建请求,解决只能读取一次的问题在下级过滤器中通过 ServerWebExchange 对象获取代码读取参数的过滤器首先在一步回调中读取参数,防止获取不到保存到 exchange 中重新构造请求,防止参数失效@Componentpublic class ReqPostBodyFilter implements Ordered, GlobalFilter { @Override public int getOrder() { return 1; } @SuppressWarnings("NullableProblems") @Override public Mono filter(ServerWebExchange exchange, GatewayFilterChain chain) { ServerHttpRequest req = exchange.getRequest(); ServerHttpResponse res = exchange.getResponse(); String method = req.getMethodValue(); MediaType ct = req.getHeaders().getContentType(); if (HttpMethod.POST.matches(method) { return DataBuff你好看下看能帮你解决问题吗
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
求这图片原图或者主角 出自哪一边电影或者电视剧 哪位大神知道这张图原版在吗?求原版。。。 在word中加下划线时第一次出现一条下划线第二次怎么就出现两条... 诛仙2资料站里的宠物展示能在npc买到吗 求一些诛仙2中的可以变为人形的宠物名字 诛仙2 神域的神农殿里,这是什么东西 诛仙2宠物元神问题 诛仙2 商城 中 宠物元神 怎么比 宠物 还贵啊?宠物元神是干什么的啊... 电热水器怎么安固定花洒 猛鬼夜惊魂剧情介绍 暖宫贴在什么时候贴是最好的? 拍宝莲灯花了多少钱 不怀孕应当做哪些检查? 不怀孕需要做什么检查? spring boot 过滤器 怎么读取配置文件 不怀孕到医院应检查那几项 在京东上买东西,然后我不想要了,所以快递到之后拒收,然后在京东上申请退货,然后要填发货信息,怎么填 车辆年检需要哪些材料 汽车年检都需要准备什么材料呢 雍和宫主要求什么 做美团外卖送餐员有性别年龄限制吗? 我想去雍和宫朝拜,不知现在对外开放了没有?开放时间是几点到几点? 北京雍和宫,国子监,孔庙 坐飞机时,随身携带的行李箱要称重吗?如果超重怎么办?能不能再去办理托 ... 坐飞机超过托运规定重量怎么办 坐飞机行李超重怎么办? 手机腾讯视频,一个月去广告20元;手机搜狐视频100天去广告18元!可见腾讯吞了大家多少钱呢? 雍和宫是四到十一月份才对外开放的吗? 自考大专文科类有那些专业 自考中有哪几门专业是文科类的,急 婴幼儿外阴阴道炎发病机制是什么? 老式电热水器的排污口中的一条铁棍断了 是不是很耗电 老式电热水器打不着火 建安合同印花税应该怎样缴纳 我19岁少女身高162 到164体重100到105是标准的中等身材,但腿是腱子腿是不是大象腿 怎么辨别自己的腿型? 删除微信好友,手机号,重新加回来对方知道吗? 违停贴条罚款多少 长沙违章停车上面写有罚一百扣三分到底会扣分吗 微信删除好友,然后又加回来会被发现吗,对方手机会显示什么? 柿子营养丰富,女性在怀孕的时候吃柿子有哪些好处吗? 我大腿比较胖!相对小腿、但不是大象腿!小腿很瘦 开车撞到人要先垫医药费吗 电脑显示第三阶段反复重启正常吗? 怎么办让孩子喜欢上学习画画? 孩子喜欢画画,怎样培养 讲一讲看,孩子喜欢画画你该怎么引导? 为什么我在闲鱼发的消息看不到也没人看 闲鱼消息怎么看不到 孩子10岁喜欢画画如何培养