从Java/Android url获取参数名称集合

ole*_*flo 6 java parameters url android uri

这是绝对奇怪的,但我找不到任何兼容的Java/Android URL解析器来返回完整的参数列表.

我发现java.net.URL和android.net.Uri但它们无法返回参数集合.

我想传递url字符串,例如

String url = "http://s3.amazonaws.com/?AWSAccessKeyId=123&Policy=456&Signature=789&key=asdasd&Content-Type=text/plain&acl=public-read&success_action_status=201";

SomeBestUrlParser parser = new SomeBestUrlParser(url);
String[] parameters = parser.getParameterNames();
// should prints array with following elements
// AWSAccessKeyId, Policy, Signature, key, Content-Type, acl, success_action_status
Run Code Online (Sandbox Code Playgroud)

有谁知道现成的解决方案?

小智 12

有办法获取所有参数名称.

String url = "http://domain.com/page?parameter1=value1&parameter2=value2";
List<NameValuePair> parameters = URLEncodedUtils.parse(new URI(url));
for (NameValuePair p : parameters) {
    System.out.println(p.getName());
    System.out.println(p.getValue());
}
Run Code Online (Sandbox Code Playgroud)

  • 我收到编译时错误:URLEncodedUtils类型中的方法解析(HttpEntity)不适用于参数(URI). (3认同)