web-dev-qa-db-fra.com

Comment implémenter un rappel asynchrone à l'aide de la bibliothèque de mise en réseau Retrofit de Square

En tant que développeur iOS commençant à travailler avec Android je suis tombé sur Retrofit. Je comprends comment implémenter des requêtes synchrones mais j'ai du mal à implémenter des requêtes asynchrones avec des rappels de réussite/échec. Plus précisément, la syntaxe de rappel n'est pas claire pour moi et il n'y a pas d'exemples concrets de comment le faire sur le Retrofit site Web , le Square blogpost présentant Retrofit, ou ailleurs que j'ai vu. Quelqu'un peut-il s'il vous plaît poster un exemple de code à ce sujet? J'ai déposé un problème dans le dépôt Retrofit demandant qu'ils mettent à jour le README avec ces informations.

28
Alfie Hanssen

Après quelques recherches supplémentaires et tout simplement passer plus de temps dans le monde Android/Java, j'ai compris cela, en utilisant l'exemple de leurs documents.

Interface:

@GET("/user/{id}/photo")  
void listUsers(@Path("id") int id, Callback<Photo> cb);

La mise en oeuvre:

RestAdapter restAdapter = new RestAdapter.Builder()
            .setServer("baseURL")     
            .build();
ClientInterface service = restAdapter.create(ClientInterface.class);

Callback callback = new Callback() {
    @Override
    public void success(Object o, Response response) {

    }

    @Override
    public void failure(RetrofitError retrofitError) {

    }
};
service.listUsers(666, callback);
54
Alfie Hanssen