import 'package:dio/dio.dart';
import '../common/global.dart';//全局变量 -获取通用域名
//请求封装
class Http {
//get请求
static void get(
String url, //路径
Map<String, dynamic> params, //参数
Function callback, //请求成功回调函数
{Function errorCallback} //请求错误回调函数
) async {
Dio dio = new Dio(); //实例化请求对象
//请求header的配置
dio.options.headers["content-type"]="*******";
dio.options.headers["Authorization"]='********';
//判断 参数是否为 null 和 参数是否为 空
if (params != null && params.isNotEmpty) {
//构建字符串传参
StringBuffer str = new StringBuffer('?');
params.forEach((key, value) {
str.write("$key" + "=" + "$value" + "&");
});
String paramStr = str.toString(); //转化字符串
paramStr = paramStr.substring(0, paramStr.length - 1);
url = Gloabl.url + url + paramStr;
}else{
url = Gloabl.url + url;
}
try {
Response res = await dio.get(url);
//请求响应结果
if (callback != null) {
callback(res);//回调函数
}
} catch (err) {
//捕获错误
err(err);
}
}
//post请求
static void post(
String url, //路径
Map<String, dynamic> params, //参数
Function callback, //请求成功回调函数
{Function errorCallback} //请求错误回调函数
) async {
Dio dio = new Dio();
//请求header的配置
dio.options.headers["content-type"]="******";
dio.options.headers["Authorization"]=******';
try {
url = Gloabl.url + url;
Response res = await dio.post(url, data: params);
if (callback != null) {
callback(res);
}
} catch (e) {
if (errorCallback != null) {
errorCallback(e);
}
}
}
}
Flutter-网络请求封装
最新推荐文章于 2024-03-24 21:55:24 发布