Java 如何在HandlerInterceptorAdapter中访问RequestBody?

Java 如何在HandlerInterceptorAdapter中访问RequestBody?,java,servlets,spring-mvc,Java,Servlets,Spring Mvc,我试图将主体从request.getReader()中拉出,但它已被读取 如何在拦截器中获得请求主体?正如您所说,请求主体只能从读取器中读取一次。这不是针对拦截器的,而是针对Servlet API的所有用户的 如果需要再次访问正文,则需要将数据存储在某个位置,例如在请求属性中(使用request.setAttribute()和request.getAttribute()) 如何以及在何处执行此操作取决于您的拦截器,而您没有告诉我们您的具体案例。如问题所述,这是一款普通手柄拦截器适配器。你还需要知

我试图将主体从
request.getReader()
中拉出,但它已被读取


如何在拦截器中获得请求主体?

正如您所说,请求主体只能从
读取器中读取一次。这不是针对拦截器的,而是针对Servlet API的所有用户的

如果需要再次访问正文,则需要将数据存储在某个位置,例如在请求属性中(使用
request.setAttribute()
request.getAttribute()


如何以及在何处执行此操作取决于您的拦截器,而您没有告诉我们您的具体案例。

如问题所述,这是一款普通手柄拦截器适配器。你还需要知道什么?@user366735:没有“纯香草”之类的东西。它是一个没有行为的空基类。您需要将其子类化以使其有用,并且有3种不同的方法需要实现,在请求生命周期的3个不同点调用。答案完全取决于你是如何做到这一点的。纯香草意味着我所做的只是用空的实现来实现它。因此,为了举例说明,如何在preHandle方法中获得requestBody的句柄?公共布尔预处理(HttpServletRequest请求、HttpServletResponse响应、对象处理程序)引发异常{//what now?}这个问题非常有意义。我想用它做什么并不重要。关键是我想在拦截器方法中对请求体进行一些处理。举个例子,假设我想把它记录在我的拦截器中。字符串reqBody=?;LOGGER.log(reqBody);哈哈,听起来我已经回答了我自己的问题。RequestContextHolder是真的!