【问题标题】:how does spring cloud zuul get request parameter when content type is multipart/form-data?内容类型为multipart/form-data时spring cloud zuul如何获取请求参数?
【发布时间】:2019-01-11 19:00:54
【问题描述】:
我需要通过zuul将文件上传到我的应用程序,内容类型是multipart/form-data,但我在请求中有一些其他参数。
那么如何获取zuul中的参数呢?
我想获取令牌来检查请求是否有效。
我试过"request.getParameter("token");",但还是不行。
【问题讨论】:
标签:
netflix-zuul
spring-cloud-netflix
【解决方案1】:
如果你通过request获得
RequestContext ctx = RequestContext.getCurrentContext();
HttpServletRequest request = context.getRequest();
调用request.getParameter("token");它没有返回任何有效值
这个办法可以解决这个问题
HttpServletRequestWrapper httpServletRequestWrapper = (HttpServletRequestWrapper) request;
String token = httpServletRequestWrapper.getRequest().getParameter("token");
ps:
我建议你在获取值之前先检查请求类型。通过这种方式
String requestType = request.getContentType().split(";")[0];
if(MediaType.MULTIPART_FORM_DATA_VALUE.equls(requestType)){
HttpServletRequestWrapper httpServletRequestWrapper = (HttpServletRequestWrapper) request;
token = httpServletRequestWrapper.getRequest().getParameter("token");
}