封裝網路請求的幾個好處:
1、便於統一配置請求引數,如header,公共引數,加密規則等
2、方便除錯,日誌列印
3、優化**效能,避免到處濫new物件,構建全域性單例
4、簡化請求步驟,只暴露需要的響應資料,而對錯誤的響應統一**
5、對介面資料的基類封裝,簡化解析流程
新增依賴:
dependencies:dio: ^3.0.10
效果示例:
**如下,盡量詳細明了的解釋。
import 'package:connectivity/connectivity.dart'; //網路監聽元件import 'package:cookie_jar/cookie_jar.dart';
import 'package:dio/dio.dart';
import 'package:dio_cookie_manager/dio_cookie_manager.dart';
//規定函式型別
typedef backerror = function(int
code, string msg);
class
dioutil;
//json格式的header
static
final mapheadersjson =;
//構造實體類
dioutil()
void get(string url,) async
else
if(response.statuscode ==exceptionhandle.success)
else
}on dioerror
catch
(e) }
void post(string url,)async
else
if(response.statuscode == 200)
else
}on dioerror
catch
(e) }
//判斷是否有網
void
_isnet(backerror error) async
}}
class//全域性日誌列印設定 true 顯示,false顯示
static
const bool _isprint = true;
static
void
printinfo(info)
}}class
static
dioutil dioutil; //註冊全域性dio
}
在程式啟動時初始化。
voidmain()
_getuser()';},error: (code,msg));
} _getuser2(),error: (code,msg));
}
本猿是個新手,決定吧現在學習的每一步都記錄下來,也都盡量寫一些方便擴充套件,思路明晰的封裝包,不為別的,只為日後自己可以看懂(哈哈)。
所以有什麼不對的地方大家可以指出,不要噴,有話好好說(嘿)!
Flutter基於Dio的頻繁網路請求
使用場景 1.邊輸入邊搜尋 2.邊篩選邊搜尋 同一資料來源的非同步請求到資料返回的次序及耗時 a請求 s響應 responsea返回 b請求 s響應 responseb 會導致的問題 如果傳送的a和b請求返回的資料會相互覆蓋,a請求的老資料就會覆蓋b請求的新資料,結果展示的誤差 技術 dio請求的取...
Flutter之dio 資料請求
注意 flutter 官方提供了httpclient發起的請求,但httpclient本身功能較弱,很多常用功能都不支援。dependencies dio 1.0.9 當前最新版本為 1.0.9 建議使用 pub 上的最新版本import package dio dio.dart dio dio n...
Flutter實現網路請求
flutter json資料解析是使用了json serializable package包。它是乙個自動化源 生成器,可以為我們生成json序列化模板。由於序列化 不再由我們手寫和維護,我們將執行時產生json序列化異常的風險降至最低。flutter網路請求資料並且展示效果圖 資料介面 資料是使用...