Flutter基於Dio的頻繁網路請求

2021-10-25 00:20:41 字數 888 閱讀 5750

使用場景

1.邊輸入邊搜尋

2.邊篩選邊搜尋

同一資料來源的非同步請求到資料返回的次序及耗時:

a請求 -------------s響應 -----------responsea返回

b請求------s響應-------responseb

會導致的問題:如果傳送的a和b請求返回的資料會相互覆蓋,a請求的老資料就會覆蓋b請求的新資料,結果展示的誤差

技術

dio請求的取消

canceltoken canceltoken =

newcanceltoken()

; canceltoken.

cancel

("cancelled"

);

注意事項:canceltoken的cancle行為會取消此canceltoken的所有網路請求,上述場景的canceltoken就不能使用同乙個

解決方案:佇列,[acanceltoken,bcanceltoken]

1.a請求 [acanceltoken] ---------

2.b請求 [acanceltoken,bcanceltoken]

3.-----responsea ------responseb(b覆蓋a,結果:b)

3.此時a請求未返回資料就acanceltoken.cancle(),.remove(acanceltoken)-----responseb(結果:b)

注意:canceltoken.cancel("cancelled");會返回error ,型別error.type == dioerrortype.cancel,會影響統一出錯文案的提示

Flutter之dio 資料請求

注意 flutter 官方提供了httpclient發起的請求,但httpclient本身功能較弱,很多常用功能都不支援。dependencies dio 1.0.9 當前最新版本為 1.0.9 建議使用 pub 上的最新版本import package dio dio.dart dio dio n...

flutter 網路請求Dio封裝

封裝網路請求的幾個好處 1 便於統一配置請求引數,如header,公共引數,加密規則等 2 方便除錯,日誌列印 3 優化 效能,避免到處濫new物件,構建全域性單例 4 簡化請求步驟,只暴露需要的響應資料,而對錯誤的響應統一 5 對介面資料的基類封裝,簡化解析流程 新增依賴 dependencies...

flutter裡的dio簡單使用

在pubspec.yaml 裡面的dependencies 裡面配置 dependencies flutter sdk flutter dio 2.2 2 這裡儲存後會自動安裝。接下來在需要的檔案引入 import package dio dio.dart 使用 class mine extends...