Un Retrofit sur android?

Je suis nouveau pour le Retrofit. Comment puis-je envoyer param et obtenir Json de bellow url ?

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

j'ai besoin d'un lien pour le tutoriel .

ce code est dans mon 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());
        }
    });
}

Mon ModelLogin :

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

    public String getUsername() {
        return username;
    }

    public String getPassword() {
        return password;
    }
}

Mon RequestInterface_Login :

public interface RequestInterface_Login {

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

Mon JSONResponseLogin :

public class JSONResponseLogin {
    private ModelLogin[] login;

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

mais Trouvez-moi NullPointerException !

enter image description here

je reçois json de service, la même ci-dessous :

{"Key":null,"Response":1}
0
demandé sur RKURBAN 2016-10-05 09:13:27

2 réponses

avant que vous obtenez appel de la modernisation, vous pouvez juste imprimer L'URL et ensuite vous pouvez charger URL dans le navigateur et voir quelle réponse est à venir, vous pouvez ajouter log by bellow line avant call.enqueue(new Callback<JSONResponseLogin>()

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

Vérifiez votre réponse Et laissez-moi savoir et je vais vous aider ... coz je suis à l'aide de rénovation dans mes 3 projets

Faire comme ça ...dans l'interface

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

et le retirer de la base .baseUrl("http://192.168.8.11:8087")

2
répondu Rajesh Gauswami 2017-09-13 11:18:00

j'écris ce post sur 'Retrofit in android' en utilisant notre dernière bibliothèque Retrofit, ce plugin peut être utilisé pour intégrer Retrofit à votre projet. Avant d'utiliser reftrofit, nous avons juste besoin de suivre quelques étapes pour ajouter des Plugins QAssist dans Android studio qui réduiront vos efforts d'intégration de services web.

1.Ajouter (Qassist-Android Studio Plugin) Android plugin dans votre studio Android. ( https://github.com/sakkeerhussain/QAssist ).:-

2.Quand nous en avons fini avec le plugin, nous devons redémarrer notre studio Android.

3.Vérifiez votre studio Android Menubar vous pouvez trouver "QAssist".

4.Cliquez là-dessus et commencez avec Retrofit Integrate.

5.Maintenant nous avons besoin : - BaseUrl des Api Web - Toutes les Api en points. - Exemple de demande et réponse à toutes les demandes. - Après avoir terminé ces étapes, votre paquet reftrofit (qassist / retrofit) est généré à l'intérieur du Projet).

6.Vous pouvez trouver une classe et une Interface à l'intérieur de ce paquet.

7.L'interface contient tous les détails des paramètres et la classe contiendra les détails du raccord Retrofit.

8.Nous avons juste besoin d'ajouter un petit code pour accéder et Api et analyser la réponse de L'Api au modèle de données. 9.Utilisez cette fonction d'exemple pour appeler L'Api.

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
0
répondu A-Droid Tech 2017-11-29 12:19:20