有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

SpringJava拦截器读取请求体使请求为空

我已经使用spring编写了一个拦截器,它以preHandle方法从HTTPServletRequest读取请求体。请求体包含json。我也可以读取请求正文,但是请求对象发生了一些事情,请求正文变得空白。正因为如此,这个请求正在变成一个糟糕的请求。任何帮助都将不胜感激。提前谢谢


共 (1) 个答案

  1. # 1 楼答案

    我没有使用JEE拦截器或Spring拦截器,也不知道它们是如何工作的

    但听起来更简单的方法是使用过滤器(从web.xml配置)。由于过滤器在一个链中相互调用,因此可以很容易地将转发的HttpServletRequest对象替换为一个经过包装的对象(在这里提供主体)

    这可能是通过创建自己的类,扩展HttpServletRequestWrapper,然后覆盖适当的方法来实现的(getInputStream听起来像是这样,是吗?)

    然后,您的getInputStream版本将返回您已经阅读的正文的ByteArrayInputStream,或者您认为合适的任何类型的InputStream