flutter 網路請求Dio封裝

2022-07-07 12:39:11 字數 1647 閱讀 8234

封裝網路請求的幾個好處:

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

}

在程式啟動時初始化。

void

main()

_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網路請求資料並且展示效果圖 資料介面 資料是使用...