Springrequest.getInputStream()或request.getReader()只能取一次
也是个蛋疼的故事.
Springboot这种框架(包括类似的), 提供了足够的基础设施,既强大又灵活. 那为什么还要处理这种蛋疼的问题呢?!
因为遗留系统, 这次是...
把一个十年前的(设计思想是十年前,或者是一堆外行写的项目)系统升级框架,用springboot2重构. 因为不想改与它交互的系统(实在太重,修改,测试,发布...成本太高),所以在迁就原来代码的情况下. Controller里的方法接参数就用到这可爱的request.getReader().然而取不到. 空的. 猜测是Spring已经"帮忙"处理过一道了.果然....
思路是:
1.自己实现一个HttpServletRequestWrapper的子类, override getReader()/getInputStream()方法.2.加一个优先级较高的filter,在这个filter里调用1中的方法, 缓存request里的内容.
具体代码看链接里.毕竟青春短暂, 不废话了.
参考链接:
https://www.baeldung.com/spring-reading-httpservletrequest-multiple-times -- 写的还是很清晰的,github上源码不好找,目录太深
https://blog.csdn.net/weixin_39591965/article/details/87707236 -- 没按照这个来,就是记录一下
以上是 Springrequest.getInputStream()或request.getReader()只能取一次 的全部内容, 来源链接: utcz.com/z/511757.html