Retrofit 2.0 Appel avec des arguments en paramètre à l'url
Salut le forum !
J'ai suivi le tutoriel Retrofit 2.0
Cependant je n'arrive pas à faire un appel avec des arguments en paramètre à l'url.
Je suis débutant dans ce domaine, on est d'accord que pour faire appel à
Code:
1 2
| @GET("/search/repositories")
Call<List<Repo>> searchRepos(@Query("q") String query); |
je remplace la ligne :
Code:
githubService.listRepos("florent37").enqueue(new Callback<List<Repo>>() {
par :
Code:
githubService.searchRepos("picasso").enqueue(new Callback<List<Repo>>() {
ce qui me donne :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| githubService.searchRepos("picasso").enqueue(new Callback<List<Repo>>() {
@Override
public void onResponse(Call<List<Repo>> call, Response<List<Repo>> response) {
if (response.isSuccessful()) {
List<Repo> listRepos = response.body(); //J'ai remplacé call par response.
afficherRepos(listRepos);
} else {
//appelé en cas d'erreur API / HTTP
if(response.code() == 405) {
MainActivity.this.notifyAll();
}
}
}
@Override
public void onFailure(Call<List<Repo>> call, Throwable t) {
Log.d("Message", "Null: ");
}
}); |
Je retrouve le message Null dans ma console.
Il ne fallait pas renvoyer une liste
Yop, bon j'ai trouvé, peux être que cela intéresse certaines personnes, en fait je renvoyais une liste :
Code:
1 2
| @GET("/search/repositories")
Call<List<Repo>> searchRepos(@Query("q") String query); |
Alors que cet appel : https://api.github.com/search/repositories?q=picasso renvoi des objets. En effet lorsque l'on regarde ce que renvoie le lien, le texte commence par un { ce qui signifie que l'appel renvoie des variables.
Alors qu'avec cet appel par exemple : https://api.github.com/users/android/repos
Cet appel renvoie directement une liste car lorsque l'on regarde le premier caractère que renvoie cet appel, on constate qu'il commence par un [ qui signifie le début d'une liste.
Donc bien faire attention, les {} lorsque ça renvoie des variables et [] une liste.