【问题标题】: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");
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-02-05
    • 1970-01-01
    • 2019-11-12
    • 2014-10-31
    • 2013-08-08
    • 2018-12-22
    • 1970-01-01
    相关资源
    最近更新 更多