Как Spring Cloud Zuul получает параметр запроса, когда тип контента multipart / form-data? - PullRequest
0 голосов
/ 15 декабря 2018

Мне нужно загрузить файл через zuul в мое приложение, тип содержимого multipart / form-data, но у меня есть некоторые другие параметры в запросе.

Так как мне получить параметры в zuul?

Я хочу получить токен, чтобы проверить, действителен ли запрос или нет.

Я пробовал "request.getParameter("token");", но это не работает.

1 Ответ

0 голосов
/ 11 января 2019

если вы получаете 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");
}
...