public static Hashtable parseUrlString(String url) {
Hashtable parameter = new Hashtable();
List<NameValuePair> params = null;
try {
params = URLEncodedUtils.parse(new URI(url), "UTF-8");
for (NameValuePair param : params) {
if (param.getName() != null && param.getValue() != null)
parameter.put(param.getName(), param.getValue());
}
} catch (URISyntaxException e) {
e.printStackTrace();
}
return parameter;
}
Run Code Online (Sandbox Code Playgroud)
上面的方法适用于我将参数名称的值提取到哈希表,但是在Api 21+中,NameValuePair和URLEncodedUtils已被弃用,那么我可以用这种方法替换这种方法的最佳方法是什么?
Bla*_*der 10
在Android中,您永远不应该使用现已弃用的URLEncodedUtils.一个很好的选择是使用Uri类:检索查询参数键getQueryParameterNames()然后迭代它们并使用检索每个值getQueryParameter().
你可以使用android.net.Uri.
Uri uri=Uri.parse(url);
Run Code Online (Sandbox Code Playgroud)
它有getQueryParameterNames()和uri.getQueryParameter(parameterNameString);
已经回答,但这里是写出的方法
public static HashMap<String, String> getQueryString(String url) {
Uri uri= Uri.parse(url);
HashMap<String, String> map = new HashMap<>();
for (String paramName : uri.getQueryParameterNames()) {
if (paramName != null) {
String paramValue = uri.getQueryParameter(paramName);
if (paramValue != null) {
map.put(paramName, paramValue);
}
}
}
return map;
}
Run Code Online (Sandbox Code Playgroud)
尝试:
Uri uri = Uri.parse(yourStrUrl);
String paramValue = uri.getQueryParameter("yourParam");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6906 次 |
| 最近记录: |