URLEncodedUtils.parse(uri, encoding)是否以URL中提到的相同顺序返回参数?
并返回具有重复名称的参数的所有值吗?
最佳答案
public static void parse (
final List <NameValuePair> parameters,
final Scanner scanner,
final String encoding) {
scanner.useDelimiter(PARAMETER_SEPARATOR);
while (scanner.hasNext()) {
final String[] nameValue = scanner.next().split(NAME_VALUE_SEPARATOR);
if (nameValue.length == 0 || nameValue.length > 2)
throw new IllegalArgumentException("bad parameter");
final String name = decode(nameValue[0], encoding);
String value = null;
if (nameValue.length == 2)
value = decode(nameValue[1], encoding);
parameters.add(new BasicNameValuePair(name, value));
}
}
如您在parse函数中所见,它保留了URL中参数的顺序。但这是实现的详细信息,没有文档记录,因此可以在不发出警告的情况下进行更改。您确实不应在代码中依赖该行为。