2016-10-05 6 views
0

Ich bin neu in Retrofit. Wie kann ich param senden und Json von der bruder URL erhalten?Retrofit in Android?

http://xxx:8087/courier.svc/login?username=jim&password=123456 

Ich brauche einen Link für das Tutorial.

Dieser Code ist in meinem MainActivity:

private void loadJSON(String username, String password) { 
    Retrofit retrofit = new Retrofit.Builder() 
      .baseUrl("http://192.168.8.11:8087/sample.svc/") 
      .addConverterFactory(GsonConverterFactory.create()) 
      .build(); 
    RequestInterface_Login request = retrofit.create(RequestInterface_Login.class); 
    Call<JSONResponseLogin> call = request.getJSON(username, password); 
    call.enqueue(new Callback<JSONResponseLogin>() { 
     @Override 
     public void onResponse(Call<JSONResponseLogin> call, Response<JSONResponseLogin> response) { 

      JSONResponseLogin jsonResponse = response.body(); 
      data = new ArrayList<>(Arrays.asList(jsonResponse.getLogin())); 
     } 

     @Override 
     public void onFailure(Call<JSONResponseLogin> call, Throwable t) { 
      Log.d("Error", t.getMessage()); 
     } 
    }); 
} 

Mein ModelLogin:

public class ModelLogin { 
    private String username; 
    private String password; 

    public String getUsername() { 
     return username; 
    } 

    public String getPassword() { 
     return password; 
    } 
} 

Mein RequestInterface_Login:

public interface RequestInterface_Login { 

    @GET("/login/{username}/{password}") 
    Call<JSONResponseLogin> getJSON(@Path("username") String username, @Path("password") String password); 
} 

Mein JSONResponseLogin:

public class JSONResponseLogin { 
    private ModelLogin[] login; 

    public ModelLogin[] getLogin() { 
     return login; 
    } 
} 

Aber holen Sie mich NullPointerException!

enter image description here

ich json aus dem Dienst gleichen Gebrüll:

{"Key":null,"Response":1} 
+0

Wird die API in Form von Feld oder JSON-Antwort geschlagen oder direkt in URL eingegeben? –

+0

Meine Bibliothek ist: kompilieren 'com.squareup.retrofit2: nachrüsten: 2.1.0' kompilieren ('com.squareup.retrofit2: konverter-gson: 2.0.0-beta4') { exclude modul: 'nachrüsten' } –

+0

Ich spreche nicht von Nachrüstung. Wenn Sie den tatsächlichen API Link teilen können, kann ich Ihnen dabei helfen –

Antwort

3

Bevor Sie die Nachrüstung bekommen rufen Sie einfach die URL drucken und dann können Sie URL in Browser laden und sehen, welche Antwort kommt Sie können Protokoll von unten Zeile vor call.enqueue(new Callback<JSONResponseLogin>()

Log.e(TAG, "API URL: " + call.request().url()); 

Überprüfen Sie Ihre Antwort hinzufügen Und lassen Sie mich wissen, ich werde dir helfen ... Coz I Nachrüstung bin mit meiner 3 Projekte

wie dies tun ... in Schnittstelle

@GET("/courier.svc/login?) 
Call<JSONResponseLogin> getJSON(@Query("username") String username, 
           @Query("password") String password); 

und entfernen Sie sie von der Basis .baseUrl("http://192.168.8.11:8087")

+0

Es zeigen Sie mir: http: //192.168.8.11: 8087/login/jim/123456 aber ich muss http://192.168.8.11:8087/courier.svc/login?username=jim&password=123456 –

+0

Ich habe Antwort bearbeitet siehe dies tun und lassen Sie mich wissen, ob es funktioniert @JoJoRoid –

+0

ich Zuckerrohr sehen wahr URL jetzt .aber bekomme mich Fehler java.lang.NullPointerException: storage == null Ich denke, dass es für {"Key": null, "Response": 1}? –

0

Ich schreibe diesen Beitrag über "Retrofit in android" mit unserer neuesten Retrofit-Bibliothek, Dieses Plugin kann verwendet werden, um Retrofit in Ihr Projekt zu integrieren. Bevor Sie Reftrofit verwenden, müssen Sie nur einige Schritte ausführen, um QAssist-Plugins in Android Studio hinzuzufügen, was die Integration von Webservices reduziert.

1. Hinzufügen (QAssist - Android Studio Plugin) Android-Plugin in Ihrem Android-Studio. (https://github.com/sakkeerhussain/QAssist).: -

2.Wenn wir mit dem Plugin fertig sind, müssen wir unser Android Studio neu starten.

3.Überprüfen Sie Ihre Android-Studio-Menüleiste Sie können "QAssist" finden.

4. Klicken Sie darauf und beginnen Sie mit Retrofit Integrate.

5. Jetzt brauchen wir: - BaseUrl von Web Api - Alle Api en Punkte. - Beispiel Anfrage und Antwort aller Anfrage. - Nach Abschluss dieser Schritte Ihre reftrofit (QAssist/Retrofit-Paket wird in Project genant).

6.Sie können eine Klasse und eine Schnittstelle in diesem Paket finden.

7.Die Schnittstelle enthält alle Details der Endpunkte und die Klasse enthält die Details zur Nachrüstung.

8.Wir müssen nur einen kleinen Code für den Zugriff und Api hinzufügen und analysieren, dass Api 'Antwort auf Datenmodell. 9.Verwenden Sie diese Beispielfunktion, um Api aufzurufen.

private void demoRetroFitCall() { 
     APIService apiService = RetrofitManager.getInstance(this); 
     //APIService apiService = RetroFitApiClient.getClient().create(APIService.class); 
     Call<ModelData> call = apiService.TestGet(); 
     call.enqueue(new Callback<ModelData>() { 
      @Override 
      public void onResponse(Call<ModelData> call, Response<ModelData> response) { 
       Log.d("TAG", "Data recived in response.body");    
       } 

      @Override 
      public void onFailure(Call<ModelData> call, Throwable t) { 
       Log.e("TAG", t.toString());    
       } 
     }); 
    } 
56 - voda