web-dev-qa-db-fra.com

Retrofit get string response

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 <>;

15
user6038288

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();
    }
});
20
SaravInfern

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.

7
Mikhail