Я использую прокси-сервер Spring cloud zuul для добавления параметра запроса в запрос.
Поэтому был применен фильтр маршрута:
@Override
public Object run() {
RequestContext context = RequestContext.getCurrentContext();
Map<String, List<String>> newParameterMap = new HashMap<>();
Map<String, String[]> parameterMap = context.getRequest().getParameterMap();
// getting the current parameter
for (Map.Entry<String, String[]> entry : parameterMap.entrySet()) {
String key = entry.getKey();
String[] values = entry.getValue();
newParameterMap.put(key, Arrays.asList(values));
}
// add new parameter grp
newParameterMap.put("GRP", Arrays.asList(value));
context.setRequestQueryParams(newParameterMap);
return null;
}
Запрос поступает в кодировке iso-8859-1, но изменен в Zuul на Utf-8
Example:
in: &ORT_BEZ=Geb%E4ude
out: &ORT_BEZ=Geb%EF%BF%BDude
Это вызывает проблемы в устаревшем веб-приложении, которое находится за прокси-сервером.
Если я использую опцию "force-original-query-string-encoding = true" в application.properties, запрос передается правильно, но параметр запроса не добавляется.
Как заставить zuul сохранить кодировку параметров запроса, а также добавить параметр запроса?