首页 > 解决方案 > 内容类型为multipart/form-data时spring cloud zuul如何获取请求参数?

问题描述

我需要将文件上传zuul到我的应用程序,内容类型是 multipart/form-data,但我在请求中有一些其他参数。

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

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

我试过"request.getParameter("token");"了,但它不起作用。

标签: netflix-zuulspring-cloud-netflix

解决方案


如果你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");
}

推荐阅读