2017-02-05 2 views
0

Это код, который не работает. Я нашел его в сети, и я пытаюсь использовать его сам, но код HTTP всегда с поглаживанием его, и он не работает. Я думаю, что из-за его устаревания, но я искал по всему Интернету и не нашел ответа, поэтому я подумал, что могу попросить его здесь.Android Studio can not найдет замену для кода httpclient (его больше не работает в android 25)

private class BackTask extends AsyncTask<Void,Void,Void> { 
     ArrayList<String> list; 
     protected void onPreExecute(){ 
      super.onPreExecute(); 
      list=new ArrayList<>(); 
     } 
     protected Void doInBackground(Void...params){ 
      InputStream is=null; 
      String result=""; 
      try{ 
       HttpClient httpclient=new DefaultHttpClient(); 
       HttpPost httppost= new HttpPost("http://10.0.2.2:8080/getInterviewees.php"); 
       HttpResponse response=httpclient.execute(httppost); 
       HttpEntity entity = response.getEntity(); 
       // Get our response as a String. 
       is = entity.getContent(); 
      }catch(IOException e){ 
       e.printStackTrace(); 
      } 

      //convert response to string 
      try{ 
       BufferedReader reader = new BufferedReader(new InputStreamReader(is,"utf-8")); 
       String line = null; 
       while ((line = reader.readLine()) != null) { 
        result+=line; 
       } 
       is.close(); 
       //result=sb.toString(); 
      }catch(Exception e){ 
       e.printStackTrace(); 
      } 
      // parse json data 
      try{ 
       JSONArray jArray =new JSONArray(result); 
       for(int i=0;i<jArray.length();i++){ 
        JSONObject jsonObject=jArray.getJSONObject(i); 
        // add interviewee name to arraylist 
        list.add(jsonObject.getString("iname")); 
       } 
      } 
      catch(JSONException e){ 
       e.printStackTrace(); 
      } 
      return null; 
     } 
     protected void onPostExecute(Void result){ 
      listItems.addAll(list); 
      adapter.notifyDataSetChanged(); 
     } 
    } 
+0

https://stackoverflow.com/questions/32949626/org-apache-http-entity-fileentity-is-deprecated-in- android-6-marshmallow – CommonsWare

ответ

0
android { 
compileSdkVersion ... 
buildToolsVersion ... 
useLibrary 'org.apache.http.legacy' 

defaultConfig { 
    ... 
} 

Используйте это на build.gradle для приложения.

0

Попробуйте добавить это в свой файл градиента.

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

Или вы можете просто использовать HttpURLConnection вместо того, чтобы ...

+0

да, я знаю, но я бы не знал, как это сделать, можете ли вы привести пример? –

Смежные вопросы