簡體   English   中英

NameValuePair不建議使用openConnection

[英]NameValuePair deprecated for openConnection

我一直在關注如何從Android應用程序將數據插入數據庫的在線教程,除了這個小部分之外,一切都正常

List<NameValuePair> params = new ArrayList<>();
params.add(new BasicNameValuePair("username", username));
params.add(new BasicNameValuePair("password", password));

NameValuePair和BasicNameValuePair已被棄用,轉而使用openConnection() 如何創建與之相關的新值關聯? http://developer.android.com/reference/java/net/URL.html#openConnection()

有誰知道如何使用openConnection創建名稱值對? 我到處搜尋。

我剛遇到同樣的問題。 來自org.apache.http的棄用類已在API 23 刪除

我最終使用了android.util.Pair 它工作得很好,代碼也很短:

List<Pair<String, String>> params = new ArrayList<>();
params.add(new Pair<>("username", username));
params.add(new Pair<>("password", password));

您可以使用ContentValues ,例如:

ContentValues values = new ContentValues();
values.put("username", name);
values.put("password", password);
database.insert(Table_name, null, values);

替換為NameValuePair。 您還可以從中獲取其名稱和值,如下所述。 這里的關鍵是名字。

創建:

ContentValues values = new ContentValues();
values.put("key1", "value1");
values.put("key2", "value2");

獲得關鍵和價值:

for (Map.Entry<String, Object> entry : values.valueSet()) {
    String key = entry.getKey(); // name
    String value = entry.getValue().toString(); // value
}

您可以使用httpmime.jar文件而不是它,這將比NameValuePair更好用。 您可以從這里下載下載

MultipartEntity multi = new MultipartEntity();
multi.addPart("name", new StringBody("Raj"));
multi.addPart("Id", new StringBody("011"));

將此jar添加到您的項目中然后使用它。

如果你真的想在你的應用程序中使用NameValuePair ,你可以將useLibrary 'org.apache.http.legacy'添加到你的gradle中:

buildtypes{
    //------------
    //----------
}

useLibrary 'org.apache.http.legacy'

您可以根據自己的喜好使用contentvalues或hashmap。

我使用了內容值

ContentValues contentValues = new ContentValues();
contentValues.put("key1","value1");
contentValues.put("key2","value2");

如果您發布的數據是表單數據,那么您可以在此處將其轉換為表單數據

 public String getFormData(ContentValues contentValues) throws UnsupportedEncodingException {

    StringBuilder sb = new StringBuilder();
    boolean first = true;
    for (Map.Entry<String, Object> entry : contentValues.valueSet()) {
        if (first)
            first = false;
        else
            sb.append("&");

        sb.append(URLEncoder.encode(entry.getKey(), "UTF-8"));
        sb.append("=");
        sb.append(URLEncoder.encode(entry.getValue().toString(), "UTF-8"));
    }
    return sb.toString();
}

喲可以改變你的Android Api 21,右擊,屬性android,點擊api 21對我有用

暫無
暫無

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

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