可重复读输入流的问题

为了统一签名, 需要在controller之前读json输入流数据,

controller的参数绑定是直接读inputStream, 但一般httpServletRequest只能读一次,

解决方法是, 在filter中直接读一次inputStream然后缓存读到的结果, 后续所有的inputStream.read()都从缓存中取 (包括controller的参数绑定).

ContentCachingRequestWrapper 这个类的inputSteam仍然只能读一次, 再次读缓存结果需要调用另外的一个方法getContentAsByteArray(), 参数绑定不会自动调用这个getContentAsByteArray, 要解决上面的问题 用这个类是不行的

https://blog.csdn.net/bjo2008cn/article/details/53888923

https://blog.51cto.com/zero01/2334836

猜你喜欢

转载自www.cnblogs.com/yszzu/p/11616595.html