发起multipart/form-data类型的请求
通过在ZuulFilter过滤器的run()方法中使用下面方法:
RequestContext ctx = RequestContext.getCurrentContext(); HttpServletRequest request = context.getRequest(); String token = request.getParameter("token");发现无法获取到token,token为空。
解决方案:
通过下面代码就可以获取到multipart/form-data类型的参数。
HttpServletRequestWrapper httpServletRequestWrapper = (HttpServletRequestWrapper) request; token = httpServletRequestWrapper.getRequest().getParameter("token");
解决过程:
通在继续DEBUG我发现context.getRequest()获取到的是Servlet30RequestWrapper
直接通过该包装类,无法获取到multipart/form-data类型的参数。
Servlet30RequestWrapper 继承自HttpServletRequestWrapper
HttpServletRequestWrapper中有个一个方法
public HttpServletRequest getRequest(){...}通过该方法可以获取一个HttpServletRequest,这个HttpServletRequest实际上也就是StandardMultipartHttpServletRequest。