博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
flutter 对dio进行简单的二次封装
阅读量:3958 次
发布时间:2019-05-24

本文共 1741 字,大约阅读时间需要 5 分钟。

前言

在项目中,我们往往要对第三方框架进行二次封装,目的在于减小项目对第三方框架的依赖,当第三方框架出现不兼容或者严重bug以至于我们需要更换第三方框架时,我们只需要在封装的地方更改第三方框架,而不需要在整个项目中进行更改。

下面我们封装对dio进行简单的二次封装

代码

import 'dart:ffi';import 'package:dio/dio.dart';import 'package:flutter/material.dart';typedef onSuccess(dynamic data);typedef onError(String reason, int statusCode);typedef onComplete();class Http {  // 项目的baseurl  static const BASE_URL = "";  factory Http() => _getInstance();  static Http get instance => _getInstance();  static Http _instance;  Dio _dio;  Http._internal() {    // 可以在自己按需要配置    _dio = Dio(BaseOptions(      baseUrl: BASE_URL,    ));  }  static Http _getInstance() {    if (_instance == null) {      _instance = new Http._internal();    }    return _instance;  }  void get(String path,      {Map
param, onSuccess success, onError error, onComplete complete}) { _dio.get(path, queryParameters: param).then((value) { if (value.statusCode == 200) { if (success != null) { success(value.data); } } else { if (error != null) { error(value.statusMessage, value.statusCode); } } if (complete != null) { complete(); } }); } void post(String path, {data, Map
param, onSuccess success, onError error, onComplete complete}) { _dio.post(path, data: data, queryParameters: param).then((value) { if (value.statusCode == 200) { if (success != null) { success(value.data); } } else { if (error != null) { error(value.statusMessage, value.statusCode); } } if (complete != null) { complete(); } }); }}

这里我们使用单例模式进行封装,在项目中的使用我们个调用Http.instance.get或者Http.instance.post。

转载地址:http://jdtzi.baihongyu.com/

你可能感兴趣的文章
java 的一些知识
查看>>
C 指针解读
查看>>
有关乱码的处理---中国程序员永远无法避免的话题
查看>>
WEB互动的革命 - JSF框架中使用的设计模式介绍
查看>>
J2EE程序中的SQL语句自动构造方法讲解
查看>>
JSP的运行内幕
查看>>
完全优化MySQL数据库性能的八大巧方法
查看>>
白话诠释ERP
查看>>
反射在Java Swing事件处理中的应用
查看>>
15 hot programming trends -- and 15 going cold
查看>>
我最恐惧的事情是竞争力的丧失
查看>>
java Swing 自动视感包
查看>>
IT经理激励员工的101招
查看>>
服务好“最后一公里”,高效CDN架构经验
查看>>
一个软件开发培训学员的来信及回复
查看>>
马云的精辟语录
查看>>
每一位Android开发者应该知道的Android体系架构和开发库
查看>>
次级贷!
查看>>
计算机科学反思录
查看>>
MSVC vs. MinGW 之 (lib,dll,def,obj,exe) vs (a,dll,def,o,exe) 玩转攻略手记
查看>>