一、开发背景:客户端用http请求发送数据请求,需要后台返回一个json格式的数据。
二、历程:1.一开始获取之后以为肯定可以用了,就直接用gson解析;
2.进入这个坑可想之后。 这种情况下gson提醒格式不对;
3.郁闷的我开始排查,终于找到了原来是获取json格式数据的时候错误。
三、先看代码:
public void getUrlDate(String urlPath) {
if (urlPath != null) {
OkHttpClient mHttpClient = new OkHttpClient(); //新建okHttpClient对象
Request request = new Request.Builder() //发送请求
.url(urlPath)
.build();
mHttpClient.newCall(request).enqueue(new Callback() { //获取返回的值
@Override
public void onFailure(Request request, IOException e) {
}
@Override
public void onResponse(Response response) throws IOException {
String json = response.body().toString(); //出错的位置
Log.e("json", "onResponse = " + json);
// Gson gson = new Gson();
// oilInfo = gson.fromJson(json, OilInfoBean.class);
// Log.e("json", oilInfo.toString());
}
});
} else {
Log.e("error", "未获取到url");
}
}
四、问题就处在这儿,我一开始是直接
1.不行
String json = response.toString();
2.不行
String json = response.body().toString();
打印:
onResponse = com.squareup.okhttp.internal.http.RealResponseBody@2b88614
五、处理方法
String json = response.body().string();