下面是报错内容,使用okhttp,的时候报错的.这个不关闭,好像时间久了会报内存溢出错误.
W/OkHttp: A connection to http://172.19.128.64:8061/ was leaked. Did you forget to close a response body?
比如,下面这样解决:
//4.同步人脸库操作
private void faceAsync() {
//1.这里去同步照片到人脸库
//String faceUrl="http://172.19.128.73:8060/api/faceDevice/listByIp";
String server_ip = GetConfigValue.getConfigProperties("server_ip");
//String faceUrl="http://172.19.128.64:8061/api/faceDevice/listByIp";
String faceUrl=server_ip + "/api/faceDevice/listByIp";
OkHttpClient faceHttpClient = new OkHttpClient();
Request faceRequest = new Request.Builder()
.get()
.url(faceUrl)
.build();
//构造Call对象
Call faceCall=faceHttpClient.newCall(faceRequest);
faceCall.enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
ToastUtils.toast(HomeActivity.this, "登录二维码获取失败");
}
@Override
public void onResponse(Call call, Response response) throws IOException {
String jsonStr =response.body().string();
//1.将base64,转换为图片
try {
respFaceArray=null; //清空一下
JSONObject jsonObj=new JSONObject(jsonStr);
respFaceArray =jsonObj.getJSONArray("data");
uiHandler.sendEmptyMessage(111);
response.body().close();
} catch (JSONException e) {
ToastUtils.toast(HomeActivity.this, "登录二维码获取失败");
response.body().close();
e.printStackTrace();
}
}
});
}
用一段代码来说明吧,可以看到用完了,response.body().close();
用完以后记得关闭,就行,但是如果,自己对okHttp又封装了一层,或者,找的别人
封装的工具类,记得,去修改,请求成功的地方,用完以后把response.body().close()加上,有很多没加的.
发现其他人写的这个工具类.好多都没有关闭response
本文暂时没有评论,来添加一个吧(●'◡'●)