Android Studio - 不推荐使用NameValuePair和HttpParams

问题描述 投票:0回答:4

我是Android开发的新手,我有一些弃用的问题。在Android Studio中,它声明不推荐使用NameValuePairHttpParams

ArrayList<NameValuePair> dataToSend = new ArrayList<>();
        dataToSend.add(new BasicNameValuePair("fname", user.fname));
        dataToSend.add(new BasicNameValuePair("lname", user.lname));
        dataToSend.add(new BasicNameValuePair("email", user.email));
        dataToSend.add(new BasicNameValuePair("password", user.password)); 

HttpParams httpRequestParams = new BasicHttpParams();
        HttpConnectionParams.setConnectionTimeout(httpRequestParams, CONNECTION_TIMEOUT);
        HttpConnectionParams.setSoTimeout(httpRequestParams, CONNECTION_TIMEOUT);

        HttpClient client = new DefaultHttpClient(httpRequestParams);
        HttpPost post = new HttpPost(SERVER_ADDRESS + "register");

在搜索答案时,我被发送使用openconnection(),但我不知道这是如何适用于上面的代码。

java android android-studio
4个回答
2
投票

您是否尝试使用ContentValues?

从这段代码我不确定它是否会对你有所帮助。

ContentValues values=new ContentValues();

  values.put("fname",user.fname);
  values.put("lname", user.lname);
  values.put("email",user.email);
  values.put("password",user.password);

3
投票

您必须在build.gradle文件中添加HttpClient的依赖项:

android {

compileSdkVersion 23

buildToolsVersion "22.0.1"

useLibrary 'org.apache.http.legacy'

...

}

1
投票

您可以根据自己的喜好使用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();
}

0
投票

请为NameValuePairHttpclient添加以下依赖项以使其工作。

dependencies{
      compile 'org.jbundle.util.osgi.wrapped:org.jbundle.util.osgi.wrapped.org.apache.http.client:4.1.2'
}
© www.soinside.com 2019 - 2024. All rights reserved.