当内容类型为multipart / form-data时,spring cloud zuul如何获取请求参数?

时间:2018-12-15 06:59:34

标签: netflix-zuul spring-cloud-netflix

我需要通过list(map(list, zip(*list1))) 将文件上传到我的应用程序,内容类型为multipart / form-data,但是请求中还有其他一些参数。

那么如何获取zuul中的参数?

我想获取令牌以检查请求是否有效。

我已经尝试过zuul,但是它不起作用。

1 个答案:

答案 0 :(得分:0)

如果您通过{p> 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");
}