首次項(xiàng)目使用okgo網(wǎng)絡(luò)請求框架敏晤,碰到一個(gè)非常坑的bug缅茉,這里做個(gè)記錄嘴脾。
每次A表單頁面提交數(shù)據(jù)請求,成功之后然后跳轉(zhuǎn)到B頁面之后接受到數(shù)據(jù)馬上請求數(shù)據(jù)蔬墩,請求的socket會(huì)被close译打,請求到一半,沒有返回直接被close拇颅。這個(gè)bug還會(huì)在頁面收到通知之后連續(xù)兩次請求網(wǎng)絡(luò)出現(xiàn)奏司,這讓我這個(gè)菜逼非常苦惱樟插,一直找不到完美的解決辦法韵洋,最后只能以一個(gè)非常笨的方式解決一下。
我做了個(gè)開關(guān)黄锤,isGetData=false;在請求成功之后開關(guān)變?yōu)閠rue搪缨,否則就做個(gè)定時(shí)任務(wù)
mHandler.postDelayed(newRunnable() {
@Override
public voidrun() {
if(!isGetData)
initUserInfo();//異步獲取用戶信息
}
},200);
這樣暫時(shí)解決這個(gè)問題,但是治標(biāo)不治本鸵熟,后來終于找到解決方法副编,原來是因?yàn)樵L問https出現(xiàn)的bug,做個(gè)記錄旅赢。
OkHttpClient client =newOkHttpClient.Builder()
.protocols(Collections.singletonList(Protocol.HTTP_1_1))
.build();
即可齿桃,如果是okgo則如下