首次项目使用okgo网络请求框架,碰到一个非常坑的bug,这里做个记录。
每次A表单页面提交数据请求,成功之后然后跳转到B页面之后接受到数据马上请求数据,请求的socket会被close,请求到一半,没有返回直接被close。这个bug还会在页面收到通知之后连续两次请求网络出现,这让我这个菜逼非常苦恼,一直找不到完美的解决办法,最后只能以一个非常笨的方式解决一下。
我做了个开关,isGetData=false;在请求成功之后开关变为true,否则就做个定时任务
mHandler.postDelayed(newRunnable() {
@Override
public voidrun() {
if(!isGetData)
initUserInfo();//异步获取用户信息
}
},200);
这样暂时解决这个问题,但是治标不治本,后来终于找到解决方法,原来是因为访问https出现的bug,做个记录。
OkHttpClient client =newOkHttpClient.Builder()
.protocols(Collections.singletonList(Protocol.HTTP_1_1))
.build();
即可,如果是okgo则如下