2017-01-07 3 views
1

Ich habe eine Anwendungsquelle von codecanyon, die ich meine Anwendung erstellen werde. Ich lerne noch Android. Ich habe gefunden, dass in einer Funktion ich Warnung HttpParams deprecated bekommen werde. Mein Code ist wie folgt. Kann mir jemand vorschlagen, wie ich es gut machen kann?HttpParams Veraltete Lösung

public static boolean IsContestEnabled() { 
 
     boolean result = false; 
 

 

 
     String geturl = DataManager.SIMPLE_BASE_URL + "getContest.php"; 
 
     HttpParams param = new BasicHttpParams(); 
 
     HttpConnectionParams.setConnectionTimeout(param, 4000); 
 
     HttpConnectionParams.setSoTimeout(param, 10000); 
 

 
     HttpClient client = new DefaultHttpClient(param); 
 
     // Send Httpget request 
 
     HttpGet get = new HttpGet(geturl); 
 

 
     try { 
 

 

 
      HttpResponse responsePOST; 
 
      String response = null; 
 

 
      responsePOST = client.execute(get); 
 

 
      HttpEntity resEntity = responsePOST.getEntity(); 
 

 
      if (resEntity != null) { 
 

 
       // get response 
 
       response = EntityUtils.toString(resEntity); 
 

 
       result = true; 
 

 
       try { 
 

 
        JSONObject c = new JSONObject(response); 
 

 
        String status = c.getString("success"); 
 

 
        if (status.equals("1")) { 
 
         DataManager.status = status; 
 
        } else { 
 
         DataManager.status = status; 
 
        } 
 

 

 
       } catch (JSONException e) { 
 
        Log.e("JSON Parser", "Error parsing data " + e.toString()); 
 
       } 
 

 
      } 
 
     } catch (ClientProtocolException e) { 
 
      // TODO Auto-generated catch block 
 
      e.printStackTrace(); 
 
     } catch (IOException e) { 
 
      // TODO Auto-generated catch block 
 
      e.printStackTrace(); 
 
     } 
 

 
     return result; 
 
    }

Ich habe einige Änderungen mich über Google versucht und verwenden Stackflow aber seine nicht funktioniert. Lass mich wissen, ob jemand meinen Tag retten kann. Danke

+0

Wenn Sie versuchen, eine Remote-api holen Ressourcen zum Download (json) ich schlage vor, dass Sie sich auf die neueste Technologie zu bewegen durch Gson verwenden und weitere Informationen Retrofit können hier befound: https://square.github.io/retrofit/ und lassen Sie mich wissen, wenn Sie ein Problem haben uping the librarry –

+0

@mohammedaouledissa bist du freiberuflich verfügbar? –

+0

@Anushkasharma Ich arbeite gerade an einem anderen freiberuflichen Projekt, aber wir können Details bisher besprechen. Bitte mailen Sie hier auf [email protected] Thnks –

Antwort

1

Einrichten von Retrofit ist einfach zu gehen Sie brauchen nur eine Schnittstelle für Ihr Response-Objekt in Ihrem Fall müssen Sie eine Schnittstelle mit dem Namen PostService und eine POJO-Klasse zu kapseln Ihre Daten mit der Bezeichnung Post (in Ihrem Fall) so :

public interface PostService { 
@GET("{api end point (excluding the base url)}") 
Call<List<Post>> listPosts(); 
} 

Später müssen Sie die Retrofit-Instanz einzurichten, die die API-Basis-URL und haken die Recourcen Sie sammeln möchten, nennen verwalten:

Retrofit retrofit = new Retrofit.Builder() 
.addConverterFactory(GsonConverterFactory.create()) 
.baseUrl("https://{your base URL}/") 
.build(); 

PostService mService = retrofit.create(PostService.class); 

ich schlage vor, Sie retrof instanziiert Sie haben das Recht, das Boilerplate zu säubern. Wenn Sie MVP-Muster anwenden, ist der Präsentator der beste Ort, um das Retrofit-Objekt zu haben.

Nun, da alles eingerichtet Sie sollten bereit sein, die Retrofit-Instanz aufrufen und die Daten aus der api collet wie so

Call<List<Post>> posts = mService.listPosts(); 

Ps: Sie Gson und OkHttp Bibliotheken hier jeweils benötigen (put in gradle-Datei):

//Gson Library 
compile 'com.google.code.gson:gson:2.8.0' 
compile 'com.squareup.retrofit2:converter-gson:2.1.0' 

//OkHttp3 
compile 'com.squareup.okhttp3:okhttp:3.5.0' 
compile 'com.squareup.okio:okio:1.11.0' 
+0

Vielen Dank !! –

+0

Gern geschehen. Froh, dass ich Helfen kann. –

Verwandte Themen