Spring Boot 多次读取requestBody

 2023-02-13
原文作者:MinXie 原文地址:https://juejin.cn/post/7027436899887218725

背景:项目中需要对请求体做校验,因为HttpServletRequest不能多次读取inputStream,因此需要对它进行包装,Spring提供请求包装器HttpServletRequesWrapper可以处理这类问题。

  • 自定义请求包装器

202301012108296861.png

使用成员变量存储请求体的内容

然后覆写getInputStream()方法,每次从成员变量中重新构造新的输入流

  • 自定义过滤器,替换请求

202301012108319812.png

替换HttpServletRequest类型的请求,使用包装器包装

  • 在拦截器中读取请求体

202301012108336483.png

202301012108344294.png