freddieptf freddieptf - 2 months ago 8
Android Question

Can't get OkHttp's response.body.toString() to return a string

I'm trying to get some json data using OkHttp and can't figure out why when i try logging the

response.body().toString()
what i get is
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().string());

if(!response.isSuccessful()) {
Log.i("Response code", " " + response.code());
}

Log.i("Response code", response.code() + " ");
String results = response.body().toString();

Log.i("OkHTTP Results: ", results);


Log

I don't know what i'm doing wrong here. How do i get the response string?

Answer

You have use .string() function to print the response in System.out.println(). But at last in Log.i() you are using .toString().

So please use .string() to print and get your request's response.

NOTE:

  1. .toString(): This returns your object in string format.

  2. .string(): This returns your response.

I think this solve your problem... Right.

Comments