Est-il possible de recevoir uniquement la réponse String en utilisant la bibliothèque Retrofit? J'ai une situation où je dois ajouter une requête sur mon lien pour que ce lien ressemble à: localhost // Register? Handle = SomeID
SomeID est un entier et lorsque je le ferai, je recevrai une réponse du serveur au format chaîne composé de 20 caractères. Comment puis-je obtenir cette réponse? Retrofit peut-il même gérer des réponses qui ne sont pas au format Json?
Aussi comment dois-je créer ceci:
@GET ("/ api/UserMainInformations") Appelez getUserMainInfo ();
C'est l'exemple d'un autre appel mais maintenant je n'aurai plus de modèle pour l'envoyer parce que je l'ajoute seulement sur Query. Que dois-je mettre dans Call <>;
Vous pouvez obtenir la réponse de l'API et la convertir en chaîne comme ceci:
public interface RetrofitService{
@GET("/users")
Call<ResponseBody> listRepos();//function to call api
}
RetrofitService service = retrofit.create(RetrofitService.class);
Call<ResponseBody> result = service.listRepos(username);
result.enqueue(new Callback<ResponseBody>() {
@Override
public void onResponse(Response<ResponseBody> response) {
try {
System.out.println(response.body().string());//convert reponse to string
} catch (IOException e) {
e.printStackTrace();
}
}
@Override
public void onFailure(Throwable t) {
e.printStackTrace();
}
});
Essaye ça:
Interface api:
public interface APIService {
@GET("api/get_info")
Call<ResponseBody> getInfo();//import okhttp3.ResponseBody;
}
Appel api:
// Retrofit service creation code skipped here
String json = retrofitService().getInfo().execute().body().string();
Ça a marché pour moi. J'utilise retrofit: 2.1.0.