簡體   English   中英

從url android中提取參數值

[英]Extract parameter values from url android

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;
}

上面的方法適用於我將參數名稱的值提取到哈希表,但是在Api 21+中,NameValuePair和URLEncodedUtils已被棄用,那么我可以用這種方法替換這種方法的最佳方法是什么?

在Android中,您永遠不應該使用現已棄用的URLEncodedUtils 一個很好的選擇是使用Uri類:使用getQueryParameterNames()檢索查詢參數鍵,然后迭代它們並使用getQueryParameter()檢索每個值。

你可以使用android.net.Uri。

Uri uri=Uri.parse(url);

它有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;
}

嘗試:

 Uri uri = Uri.parse(yourStrUrl);
 String paramValue = uri.getQueryParameter("yourParam");

您可以嘗試ContentValues

for (ContentValues param : params) {
            if (param.getName() != null && param.getValue() != null)
                parameter.put(param.getName(), param.getValue());
        }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM