in gateway-util-common/src/main/java/org/apache/knox/gateway/util/HttpUtils.java [64:108]
public static Map<String,String[]> parseQueryString( String queryString ) {
Map<String,String[]> map = new LinkedHashMap<>();
if( queryString != null && !queryString.isEmpty() ) {
StringTokenizer parser = new StringTokenizer( queryString, "&?;=", true );
String name = null;
String value = null;
while( parser.hasMoreTokens() ) {
String token = parser.nextToken();
String ttoken = token.trim();
if( ttoken.length() == 1 ) {
char c = ttoken.charAt( 0 );
switch( c ) {
case '&':
case '?':
case ';':
addQueryStringParam( map, name, value );
name = null;
value = null;
continue;
case '=':
if( name == null ) {
name = "";
value = "";
} else if( name.isEmpty() ) {
addQueryStringParam( map, name, value );
name = "";
value = "";
} else {
value = "";
}
continue;
}
}
if( name == null ) {
name = token;
} else {
value = token;
}
} // while
if( name != null ) {
addQueryStringParam( map, name, value );
}
}
return map;
}