SpringMVC请求body为何不能重复读取?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1278个文字,预计阅读时间需要6分钟。
前言:在Spring Boot项目中使用Servlet的Filter实现签名时,发现请求的body不支持多次读取。
我通过调用getInputStream()获取流,然后通过读取流来获取请求的body。然而,这种方法似乎无法多次读取请求的body。
虽然网上有很多解决方案,以下是几种可能的方法:
1. 使用HttpServletRequest的getReader()方法代替getInputStream(),然后使用BufferedReader读取内容。
2.在读取完流后,使用HttpServletRequest的reset()方法重新设置流的位置,以便再次读取。
3.使用自定义的Filter,捕获请求的body,并将其存储在内存中,以便后续使用。
这些方法都可以尝试解决请求body不支持多次读取的问题。
前言
在Springboot的项目中使用Servlet的Filter来实现方法签名时,发现请求的body不支持多次读取。我是通过getInputStream()来获取流,然后通过读取流来获取请求的body。
虽然网上有很多解决方案的例子,但是我发现没有一篇文章解释为什么会这样的文章,所以决定自己去研究源码。
本文共计1278个文字,预计阅读时间需要6分钟。
前言:在Spring Boot项目中使用Servlet的Filter实现签名时,发现请求的body不支持多次读取。
我通过调用getInputStream()获取流,然后通过读取流来获取请求的body。然而,这种方法似乎无法多次读取请求的body。
虽然网上有很多解决方案,以下是几种可能的方法:
1. 使用HttpServletRequest的getReader()方法代替getInputStream(),然后使用BufferedReader读取内容。
2.在读取完流后,使用HttpServletRequest的reset()方法重新设置流的位置,以便再次读取。
3.使用自定义的Filter,捕获请求的body,并将其存储在内存中,以便后续使用。
这些方法都可以尝试解决请求body不支持多次读取的问题。
前言
在Springboot的项目中使用Servlet的Filter来实现方法签名时,发现请求的body不支持多次读取。我是通过getInputStream()来获取流,然后通过读取流来获取请求的body。
虽然网上有很多解决方案的例子,但是我发现没有一篇文章解释为什么会这样的文章,所以决定自己去研究源码。

