fluuter使用dio插件完成网络请求的封装

fluuter使用dio插件完成网络请求的封装

由于个人的业务需求所以封装的不是特别全面,自己可以加以修改
下载:
注意格式要对整齐不然会报错

  dependencies:
  flutter:
    sdk: flutter
  # The following adds the Cupertino Icons font to your application.
  # Use with the CupertinoIcons class for iOS style icons.
  dio: ^3.0.10 # 网络请求

封装代码:

// 引入网络请求插件
import 'package:dio/dio.dart';

// 四个参数:
// path 必须   访问路径
// method 必须 访问方式(get/post)
// data 非必须 访问携带的参数
// headers 非必须 请求头
Future ajax(path, method, {data, headers}) async {
  // print('path=$path,methods=$method,data=$data,headers=$headers');
  // var _client = Http.Client();
  String basicURL= "http://1.117.111.159/cbzytest/";// 请求地址
  String url = basicURL + path;// 将请求路径和请求地址拼接起来

  // 判断一下是post请求还是get请求
  if (method == 'get') {
    // print(data);
    var str = "?";
    // 使用forEach将需要传递的参数拼接起来
    data.forEach((key, value) {
      str += key + "=" + value.toString() + '&';
    });
    Response result = await Dio().get(url + str);
    // 返回请求结果
    // print(result.data);
    return result.data;
  } else {
    BaseOptions options = BaseOptions(method: "post", headers: headers);
    Dio dio = Dio(options);

    Response res = await dio.post(url, data: data);
    // print(res);
    return res;
  }
}

使用:
注意:使用前记得先引用

ajax("zz/cbzy/ad/ad01s01/app/login", "post", data: {
    "phone": phoneNumber.toString(),
    "password": password.toString()
}, headers: {
    "Content-type": "application/json"
}).then((value) {
    // print('这里是返回的数据:'); 
    Map<String, dynamic> userInfo = convert
        .jsonDecode(value.toString()); // 先将返回的结果转换成Map对象
})
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值