flutter 封装dio 网络请求

1.pubsper.yaml 增加依赖


2.新建名称为 httpclient的dart文件

导入dio依赖

import 'package:dio/dio.dart';

class  httpCilent{

static  final String GET='get';

  static  final String POST='post';

  static void get(String url,Function callBack){

request(url,callBack,method:GET);

  }

static void post(String url,Function callBack,{Map parmas}){

request(url,callBack,method:POST,parmas:  parmas);

  }

static void request (String url, Function callBack,{String method,Map parmas })async{

BaseOptions op=new BaseOptions(

       connectTimeout:3000,  //超时时间

        receiveTimeout:3000  //两次请求之间的间隔

    );

    Dio dio =new Dio(op);

    Response resopnse;

    try{

if(method =='get'){

resopnse=await dio.get(url);

      }else{

resopnse =await dio.post(url,queryParameters: parmas);

      }

return callBack(resopnse.data);

    }catch (exception) {

print('错误');

    }

}

}

注释: 方法(另一个方法) 此为dart匿名函数的写法,方法({参数}) 此为dart 命名函数的写法,参数可传可不传

调用方式:

另一个dart文件

import 'httpserver.dart';

调用 

httpCilent.get("http://www.mocky.io/v2/5b7143ae3200001402f36c46",(data){

PostDart user =PostDart.fromJson(data);

  print('数据为'+ user.data.pics.toString());

});

这里的data就是 之前定义过的 request 方法中的 return callBack(resopnse.data);

dart语法:https://www.jianshu.com/p/06aebcad0543

你可能感兴趣的:(flutter 封装dio 网络请求)