我正在尝试使用OkHttp获取一些json数据,并且无法弄清楚为什么当我尝试记录response.body().toString()时得到的结果是: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);
我不知道我在这里做错了什么.我如何获得响应字符串?
解决方法:
您已使用.string()函数在System.out.println()中打印响应.但最后在Log.i()中你使用.toString().
因此,请在响应正文上使用.string()进行打印并获取请求的响应,例如:
response.body().string();
注意:
> .toString():以字符串格式返回对象.
> .string():这将返回您的响应.
我认为这可以解决你的问题……对.