2017-08-11 17 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

retrofitは 'HttpClient'が手段が廃止されて使用することができます。 は、Apache HTTP APIを引き続き使用するには、まず自分のbuild.gradleファイルに 次のコンパイル時の依存関係を宣言する必要がありますそれはもはやGoogleによって維持されていません。 'Retrofit'を使うと' HttpUrlConnection'に切り替えることができます。 –

+0

@ M.WaqasPervez brother私は初心者ですので、この問題を克服する方法を具体的かつ容易にしてください。 –

答えて

0

Android6.0そのから削除あなたがそれを使用したい場合は、その後、あなたのbuild.gradleに

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

これを追加します。しかしofficial doc

を参照してください、 HttpUrlConnectionを使用するようにしてください

Android 6.0リリースでは、Apache HTTPクライアントのサポートが削除されています。 アプリがこのクライアントを使用していて、Android 2.3(APIレベル9)または をターゲットにしている場合は、代わりにHttpURLConnectionクラスを使用してください。このAPIは、透過的な の圧縮と応答キャッシングによってネットワークの使用を減らし、消費電力を最小限に抑えるので、効率的です。 です。

それとも、volleyまたは

+0

私は初心者です。このコードをHttpUrlConnectionに置き換える方法を教えてください。 HttpParams httpRequestParams = getHttpRequestParams(); HttpClientクライアント=新しいDefaultHttpClient(httpRequestParams); HttpPost post =新しいHttpPost(SERVER_ADDRESS + "savepicture.php"); –

+0

あなたはHttpUrlConnectionの権利を使いたいですか? –

+0

ええ!実際に真剣に私は何をすべきかわからないが、私はコードを実行したい –

関連する問題