实际请求是使用 Content-Type application/json 然后请求将转到过滤器进行修改,将 Content-Type 更改为
multipart/form-data
然后添加硬编码的键和值作为 form-data
但我当前的设置不管用。有什么想法吗?
public class LogRequestResponseFilter implements Filter {
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
HttpServletRequest httpServletRequest = (HttpServletRequest) servletRequest;
HttpServletResponse httpServletResponse = (HttpServletResponse) servletResponse;
ContentCachingRequestWrapper wrappedRequest = new ContentCachingRequestWrapper(httpServletRequest);
ContentCachingResponseWrapper responseWrapper = new ContentCachingResponseWrapper(httpServletResponse);
// MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) wrappedRequest;
// multipartRequest.getParameterMap().put("scope", new String[]{"read"});
filterChain.doFilter(wrappedRequest, responseWrapper);
String responseBody = getStringValue(responseWrapper.getContentAsByteArray(),servletResponse.getCharacterEncoding());
generateTokenUriLog(responseBody,httpServletRequest,httpServletResponse);
responseWrapper.copyBodyToResponse();
错误 如果我要取消注释此代码,这就是错误
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) wrappedRequest;
multipartRequest.getParameterMap().put("scope", new String[]{"read"});
class org.springframework.web.util.ContentCachingRequestWrapper cannot be cast to class org.springframework.web.multipart.MultipartHttpServletRequest
另一种方法是使用
public void somefunction(@ModelAttribute FormData formdata){}
在您的控制器中,其中 (FormData) 是包含所有表单数据的对象