2017-08-11 203 views
0

这里是我的代码表示弃用的NameValuePair,BasicNameValuePair,的HttpParams,HttpClient的,DefaultHttpClient,HttpPost,UrlEncodedFormEntity 如何解决,我现在面临这个问题...已过时的NameValuePair

 ArrayList<NameValuePair> dataTosend = new ArrayList<>(); 
     dataTosend.add(new BasicNameValuePair("image" , encodedImage)); 
     dataTosend.add(new BasicNameValuePair("name" , name)); 


     HttpParams httpRequestParams = getHttpRequestParams(); 

     HttpClient client = new DefaultHttpClient(httpRequestParams); 
     HttpPost post = new HttpPost(SERVER_ADDRESS + "savepicture.php"); 

     try{ 
      post.setEntity(new UrlEncodedFormEntity(dataTosend)); 
      client.execute(post); 
     } 
     catch (Exception e){ 
      e.printStackTrace(); 
     } 

     return null; 
    } 


} 
+1

'HttpClient'是不提倡使用的方法它不再由Google维护。如果你使用'Retrofit',你可以切换到'HttpUrlConnection'或更好。 –

+0

@ M.WaqasPervez哥哥我是初学者,所以要具体和尽可能容易,如何克服这个问题 –

回答

0

从Android6.0其去掉,如果你想使用,然后在您的build.gradle

android { 
    useLibrary 'org.apache.http.legacy' 
} 

添加这可是尝试使用HttpUrlConnection,看official doc

Android 6.0版本取消了对Apache HTTP客户端的支持。如果 您的应用正在使用此客户端,并且目标Android 2.3(API级别9)或 更高,请改为使用HttpURLConnection类。此API的效率更高,因为它通过透明的压缩和响应缓存减少了网络使用,并最大限度地降低了功耗。要 继续使用Apache HTTP API,您必须首先声明 下面的编译时依赖于你的build.gradle文件:

或者你可以使用volleyretrofit

+0

我是初学者,请你告诉如何用HttpUrlConnection替换此代码 HttpParams httpRequestParams = getHttpRequestParams(); HttpClient client = new DefaultHttpClient(httpRequestParams); HttpPost post = new HttpPost(SERVER_ADDRESS +“savepicture.php”); –

+0

所以你想让你使用HttpUrlConnection .. ..? –

+0

是啊! Actualy认真我不知道该怎么做,但我想我的代码运行 –