Flutter Dio二次封装
以下是一个简单的Flutter中使用Dio库进行网络请求的二次封装示例:
import 'package:dio/dio.dart';
class HttpUtils {
static final BaseOptions baseOptions = BaseOptions(
baseUrl: 'https://api.example.com',
connectTimeout: 5000,
receiveTimeout: 3000,
);
static final Dio dio = Dio(baseOptions);
static Future<Response<T>> get<T>(String path, {Map<String, dynamic>? queryParameters, Options? options}) async {
try {
return await dio.get<T>(path, queryParameters: queryParameters, options: options);
} on DioError catch (e) {
// 处理异常,例如打印日志、抛出错误信息等
print('请求出错:$e');
rethrow;
}
}
// 可以添加其他请求方法,例如post, put, delete等
}
// 使用示例
void main() async {
try {
Response response = await HttpUtils.get('some/endpoint');
print(response.data);
} catch (e) {
print('处理请求错误:$e');
}
}
这段代码定义了一个HttpUtils
类,它封装了Dio的基础设置和常用的GET请求方法。通过try-catch处理异常,使得在网络请求时能够更加优雅地处理错误。在main函数中展示了如何使用HttpUtils
发起网络请求。这样的封装可以提高代码的可读性和可维护性,并减少重复的样板代码。
评论已关闭