Flutter Dio二次封装
以下是一个简单的Flutter Dio二次封装的示例,包含了基本的请求方法和错误处理:
import 'package:dio/dio.dart';
class HttpService {
static const baseUrl = 'https://api.example.com';
static Dio _dio = Dio(BaseOptions(baseUrl: baseUrl));
static Future<Response> get(String path, {Map<String, dynamic>? queryParameters, Options? options}) async {
try {
return await _dio.get(path, queryParameters: queryParameters, options: options);
} on DioError catch (e) {
// 处理错误,例如打印日志、转换错误信息等
print('请求出错:${e.message}');
rethrow; // 重新抛出异常
}
}
static Future<Response> post(String path, {data, Options? options}) async {
try {
return await _dio.post(path, data: data, options: options);
} on DioError catch (e) {
print('请求出错:${e.message}');
rethrow;
}
}
// 可以添加更多的请求方法,例如put, delete等
}
// 使用示例
void fetchData() async {
try {
Response response = await HttpService.get('/someEndpoint');
print('响应数据: ${response.data}');
} catch (e) {
print('处理请求错误: $e');
}
}
这段代码定义了一个HttpService
类,其中封装了对Dio的基本请求方法。同时,它提供了基本的错误处理,在请求失败时打印错误信息。这样可以简化应用程序中的网络请求代码,并减少重复的错误处理逻辑。
评论已关闭