问题原因
HttpServletRequest中的body内容只能获取一次,如果拦截器已经获取过了body的内容,则controller中的@RequestBody将无法获取请求信息,相关原理请百度。本文不赘述。
解决方式
参考链接:https://gist.github.com/calo81/2071634
示例代码
package cn.xxx.xxx.xxx.studentSide.filter;
import com.alibaba.fastjson.JSONObject;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.http.HttpMethod;
import org.springframework.http.HttpStatus;
import org.springframework.web.util.ContentCachingRequestWrapper;
import org.springframework.web.util.ContentCachingResponseWrapper;
import javax.annotation.Resource;
import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.