Flutter Dio的简易封装和demo

flutter_net_demo

一个简单的flutter dio的封装, 包括: 日志打印, 网络进度, 返回json转bean, get post upload方法的封装, 简易可直接运行的demo

Getting Started

Clone & Run main.dart
网络相关代码在net目录, 直接复制即可使用

How to get bean

复制json字符串, 粘贴到json to dart的输入框, 点击Generate Dart之后就出现相应的Bean类, 粘贴到工程后再重命名

How to use

Config Common Params in basic_net_service.dart

  1. 通过getBasicUrl方法的返回值配置baseUrl
  2. 通过getHeaders配置基本header
  3. 通过getBasicParam配置基本网络参数

Add network loading view in basic_net_service.dart

重写方法request, 在网络进行中加上loading, 如果要对后端返回值进行处理也可以放在这个地方

Config server’s request API in app_api.dart

For example:

static const String _GET_WEATHER = "/";
Future<ResultData> getWeather(BuildContext context, bool showProgress) async {
    Map<String, dynamic> param = {};
    ///?app=weather.future&weaid=1&&appkey=10003&sign=b59bc3ef6191eb9f747dd4e83c99f2a4&format=json
    param["app"] = "weather.future";
    param["weaid"] = "1";
    param["appkey"] = "10003";
    param["sign"] = "b59bc3ef6191eb9f747dd4e83c99f2a4";
    param["format"] = "json";
    ResultData resultData =
    await get(_GET_WEATHER, params: param, context: context, showLoad: showProgress);
    resultData.toast();
    return resultData;
  }

Get it from github: FlutterDioSample & Demo

Run the demo from main.dart from which you can find the usage as below:

void _getWeather() async {
    ResultData resultData = await AppApi.getInstance().getWeather(context, true);
    if (resultData.isSuccess()) {
      WeatherBean weatherBean = WeatherBean.fromJson(resultData.response);
      Fluttertoast.showToast(msg: "成功获取本周天气, 显示周一天气");
      setState(() {
        weather = json.encode(weatherBean.result[1]);
      });
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值