Flutter學(xué)習(xí)(四)Http請求庫 dio 代碼封裝

Flutter學(xué)習(xí)(四)Http請求庫 dio代碼封裝

第一步 依賴庫

打開flutter package網(wǎng)站击敌,入口,找到dio這個(gè)組件圣蝎,查看最新版本

打開 項(xiàng)目根目錄下 ** pubspec.yaml ** 文件

添加庫名徘公,添加庫名

最好是填寫 any(** 添加兼容版本 **)关面,也或者直接從網(wǎng)站復(fù)制最新版本即可,

執(zhí)行 packages get 命令捂齐,安裝依賴

代碼部分

import 'package:dio/dio.dart';

import 'config.dart';//用于配置公用常量

class Http{

? static Http instance;

? static String token;

? static Config _config = new Config();

? static Dio _dio;

? Options _options;

? static Http getInstance(){

? ? print("getInstance");

? ? if(instance == null){

? ? ? instance? = new Http();

? ? }

? }

? Http(){

? // 初始化 Options

? ? _options =new Options(

? ? ? baseUrl: _config.base_url,

? ? ? connectTimeout: _config.connectTimeout,

? ? ? receiveTimeout: _config.receiveTimeout,

? ? ? headers: {}

? ? );

? ? _dio = new Dio(_options);

//發(fā)送請求攔截處理缩抡,例如:添加token使用

? ? _dio.interceptor.request.onSend = (Options options) async{

? ? ? print(options.baseUrl);

? ? ? return options;

? ? };

//請求成功攔截,簡化代碼中調(diào)用難度

? ? _dio.interceptor.response.onSuccess = (Response response) async{

? ? ? print(response.statusCode);

? ? ? return response;

? ? };

//請求失敗攔截

? ? _dio.interceptor.response.onError = (DioError e) {

? ? ? print(e);

? ? ? return e;

? ? };

? }

? // get 請求封裝

? get(url,{ options, cancelToken, data=null}) async {

? ? print('get:::url:$url ,body: $data');

? ? Response response;

? ? try{

? ? ? response = await _dio.get(

? ? ? ? ? url,

? ? ? ? ? data:data,

? ? ? ? ? cancelToken:cancelToken

? ? ? );

? ? }on DioError catch(e){

? ? ? if(CancelToken.isCancel(e)){

? ? ? ? print('get請求取消! ' + e.message);

? ? ? }else{

? ? ? ? print('get請求發(fā)生錯(cuò)誤:$e');

? ? ? }

? ? }

? ? return response.data;

? }

// post請求封裝

? post(url,{ options, cancelToken, data=null}) async {

? ? print('post請求::: url:$url ,body: $data');

? ? Response response;

? ? try{

? ? ? response = await _dio.post(

? ? ? ? ? url,

? ? ? ? ? data:data !=null ? data : {},

? ? ? ? ? cancelToken:cancelToken

? ? ? );

? ? ? print(response);

? ? }on DioError catch(e){

? ? ? if(CancelToken.isCancel(e)){

? ? ? ? print('get請求取消! ' + e.message);

? ? ? }else{

? ? ? ? print('get請求發(fā)生錯(cuò)誤:$e');

? ? ? }

? ? }

? ? return response.data;

? }

}

調(diào)用

頁面中引入文件:

import ‘util/http.dart’;

? var response = await Http().get(

? ? ? ? ? ? ? ? "tree/json",

? ? ? ? ? ? ? ? data: {'pageIndex': 1, 'pageSize': 10});

? ? print(response);

6.解析數(shù)據(jù)

官方推薦使用json_serializable進(jìn)行數(shù)據(jù)解析

下一章節(jié)貼上json_serializable的使用方法供大家參考,歡迎指正和互相交流榴都;

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市竿音,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌柴信,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,839評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件随常,死亡現(xiàn)場離奇詭異绪氛,居然都是意外死亡涝影,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,543評論 2 382
  • 文/潘曉璐 我一進(jìn)店門臂痕,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人握童,你說我怎么就攤上這事叛赚。” “怎么了英古?”我有些...
    開封第一講書人閱讀 153,116評論 0 344
  • 文/不壞的土叔 我叫張陵昙读,是天一觀的道長。 經(jīng)常有香客問我唠叛,道長沮稚,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,371評論 1 279
  • 正文 為了忘掉前任障般,我火速辦了婚禮盛杰,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘定拟。我一直安慰自己逗嫡,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,384評論 5 374
  • 文/花漫 我一把揭開白布驱证。 她就那樣靜靜地躺著,像睡著了一般需曾。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上商源,一...
    開封第一講書人閱讀 49,111評論 1 285
  • 那天谋减,我揣著相機(jī)與錄音,去河邊找鬼出爹。 笑死,一個(gè)胖子當(dāng)著我的面吹牛总寻,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播渐行,決...
    沈念sama閱讀 38,416評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼铸董,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了蕴忆?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,053評論 0 259
  • 序言:老撾萬榮一對情侶失蹤套鹅,失蹤者是張志新(化名)和其女友劉穎芋哭,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,558評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡豌习,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,007評論 2 325
  • 正文 我和宋清朗相戀三年肥隆,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片恰聘。...
    茶點(diǎn)故事閱讀 38,117評論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖晴叨,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情初厚,我是刑警寧澤孙技,帶...
    沈念sama閱讀 33,756評論 4 324
  • 正文 年R本政府宣布,位于F島的核電站亚情,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏楞件。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,324評論 3 307
  • 文/蒙蒙 一履因、第九天 我趴在偏房一處隱蔽的房頂上張望栅迄。 院中可真熱鬧,春花似錦毅舆、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,315評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽悦即。三九已至辜梳,卻和暖如春泳叠,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背危纫。 一陣腳步聲響...
    開封第一講書人閱讀 31,539評論 1 262
  • 我被黑心中介騙來泰國打工乌庶, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留契耿,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,578評論 2 355
  • 正文 我出身青樓糠赦,卻偏偏與公主長得像,于是被迫代替她去往敵國和親拙泽。 傳聞我的和親對象是個(gè)殘疾皇子裸燎,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,877評論 2 345

推薦閱讀更多精彩內(nèi)容