Impossible d’obtenir la réponse d’OKHttp.body.toSsortingng () pour retourner une chaîne

J’essaie d’obtenir des données json en utilisant OkHttp et je n’arrive pas à comprendre pourquoi lorsque j’essaie de connecter la response.body().toSsortingng() ce que j’obtiens, c’est Results:﹕ com.squareup.okhttp.Call$RealResponseBody@41c16aa8

 try { URL url = new URL(BaseUrl); OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder() .url(url) .header(/****/) .build(); Call call = client.newCall(request); Response response = call.execute(); **//for some reason this successfully prints out the response** System.out.println("YEAH: " + response.body().ssortingng()); if(!response.isSuccessful()) { Log.i("Response code", " " + response.code()); } Log.i("Response code", response.code() + " "); Ssortingng results = response.body().toSsortingng(); Log.i("OkHTTP Results: ", results); 

Bûche

Je ne sais pas ce que je fais mal ici. Comment puis-je obtenir la chaîne de réponse?

Vous utilisez la fonction .ssortingng() pour imprimer la réponse dans System.out.println() . Mais enfin, dans Log.i() vous utilisez .toSsortingng() .

Donc, s’il vous plaît, utilisez .ssortingng() sur le corps de la réponse pour imprimer et obtenir la réponse de votre demande, comme:

 response.body().ssortingng(); 

REMARQUE:

  1. .toSsortingng() : Cela retourne votre object au format chaîne.

  2. .ssortingng() : Cela renvoie votre réponse.

Je pense que cela résout votre problème … Bien.

Juste au cas où quelqu’un tomberait sur la même chose que moi. Je lance mon code lors du développement en mode Debug et apparemment depuis OKHttp 2.4

..le corps de réponse est une valeur unique qui peut être consommée une seule fois

Ainsi, lors du débogage, il y a un appel “en coulisse” de l’inspecteur et le corps est toujours vide. Voir: https://square.github.io/okhttp/3.x/okhttp/okhttp3/ResponseBody.html

Le response.body,.ssortingng() ne peut être response.body,.ssortingng() qu’une seule fois. S’il vous plaît utiliser comme ci-dessous:

 Ssortingng responseBodySsortingng = response.body.ssortingng(); use the responseBodySsortingng as needed in your application.