URLEncodedUtils.parse(uri, encoding)は、URLに記載されているのと同じ順序でパラメータを返しますか? 重複する名前のパラメータのすべての値を返しますか?URLEncodedUtils.parse()は順序を保持しますか?
0
A
答えて
3
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-functionでわかるように、これはURLのパラメータの順序を保持します。しかし、これは実装の詳細であり、文書化されていないため、警告なしで変更することができます。あなたは本当にあなたのコードでその動作に頼るべきではありません。
0
この関数の[ソースコード](http://www.docjar.com/html/api/org/apache/http/client/utils/URLEncodedUtils.java.html)をご覧になると160と続く)、はい。しかし、実装の詳細に頼るべきではありません。文書化されていない場合は、それに頼ることはできません。 – Jacob
ありがとうございます!私はそれを受け入れるので、あなたは答えとしてあなたのコメントを追加してくださいできますか? – adranale