flutter dio的使用

379 阅读1分钟

添加依赖

dependencies:
  dio: 3.x #latest version

我的dio 公共参数

//网站根路径  
static const String baseUrl = '';  
//连接服务器超时时间,单位是毫秒.  
static const int connectTimeout = 10000;  
//响应流上前后两次接受到数据的间隔,单位为毫秒。  
static const int receiveTimeout = 3000;  

static BaseOptions baseOptions = BaseOptions(    
    baseUrl: baseUrl,    connectTimeout: connectTimeout,    
    receiveTimeout: receiveTimeout  
);

dio的get请求

getRequest(
  String url, {
    data,
    options,
    Function onSuccess,
    Function onError,
}) async {
try {
  Response response = await dio.get( 
      url,
      queryParameters: data,
      options: options,
    );
    onSuccess(response.data);
  } on DioError catch (e) {
    onError(e);
  }
}

dio的post请求

  postHttp(
    String url, {
      data,
      options,
      Function onSuccess,
      Function onError,
    }
  ) async {
    try {
      Response response = await dio.post(
        url,
        data: data,
        options: options,
      );
      onSuccess(response.data);
    } on DioError catch (e) {
      onError(e);
    }
  }

dio封装整体文件

import 'package:dio/dio.dart';
class DioAjax {
  //网站根路径
  static const String baseUrl = '';
  //连接服务器超时时间,单位是毫秒.
  static const int connectTimeout = 10000;
  //响应流上前后两次接受到数据的间隔,单位为毫秒。
  static const int receiveTimeout = 3000;
  static BaseOptions baseOptions = BaseOptions(
    connectTimeout: connectTimeout,
    receiveTimeout: receiveTimeout
  );
  static Dio dio = Dio(baseOptions);
  getRequest(
    String url, {
      data,
      options,
      Function onSuccess,
      Function onError,
    }  ) async {
    try {
      Response response = await dio.get(
        url,
        queryParameters: data,
        options: options,
      );
      onSuccess(response.data);
    } on DioError catch (e) {
      onError(e);
    }
  }
  postHttp(
    String url, {
      data,
      options,
      Function onSuccess,
      Function onError,
    }  ) async {
    try {
      Response response = await dio.post(
        url,
        data: data,
        options: options,
      );
      onSuccess(response.data);
    } on DioError catch (e) {
      onError(e);
    }
  }
}