in zuul-core/src/main/java/com/netflix/zuul/message/http/HttpQueryParams.java [56:101]
public static HttpQueryParams parse(String queryString) {
HttpQueryParams queryParams = new HttpQueryParams();
if (queryString == null) {
return queryParams;
}
StringTokenizer st = new StringTokenizer(queryString, "&");
int i;
while (st.hasMoreTokens()) {
String s = st.nextToken();
i = s.indexOf("=");
// key-value query param
if (i > 0) {
String name = s.substring(0, i);
String value = s.substring(i + 1);
try {
name = URLDecoder.decode(name, StandardCharsets.UTF_8);
value = URLDecoder.decode(value, StandardCharsets.UTF_8);
} catch (Exception e) {
// do nothing
}
queryParams.add(name, value);
// respect trailing equals for key-only params
if (s.endsWith("=") && value.isEmpty()) {
queryParams.setTrailingEquals(name, true);
}
}
// key only
else if (!s.isEmpty()) {
String name = s;
try {
name = URLDecoder.decode(name, StandardCharsets.UTF_8);
} catch (Exception e) {
// do nothing
}
queryParams.add(name, "");
}
}
return queryParams;
}