Flutter中使用Dio库封装网络请求服务工具类
import 'package:dio/dio.dart';
class HttpService {
static Dio dio = Dio();
// 发送GET请求
static Future<Response> get(String url, {Map<String, dynamic>? queryParameters, Options? options}) async {
try {
return await dio.get(url, queryParameters: queryParameters, options: options);
} on DioError catch (e) {
// 处理请求错误
print('请求出错: ${e.message}');
rethrow; // 重新抛出异常
}
}
// 发送POST请求
static Future<Response> post(String url, {data, Options? options}) async {
try {
return await dio.post(url, data: data, options: options);
} on DioError catch (e) {
// 处理请求错误
print('请求出错: ${e.message}');
rethrow; // 重新抛出异常
}
}
// 其他请求方法(如PUT, DELETE)可以类似实现
}
// 使用示例
void main() async {
try {
// 发起GET请求
Response response = await HttpService.get('https://api.example.com/data');
print('GET请求响应: ${response.data}');
// 发起POST请求
Response postResponse = await HttpService.post('https://api.example.com/data', data: {'key': 'value'});
print('POST请求响应: ${postResponse.data}');
} catch (e) {
// 处理异常
print('请求异常: $e');
}
}
这个示例代码展示了如何在Flutter中使用Dio库来封装网络请求服务。它定义了一个HttpService
类,其中包含了发送GET和POST请求的静态方法。这些方法使用Dio的相应方法进行网络请求,并在请求过程中捕获可能发生的异常。使用时,只需调用HttpService
类提供的方法即可发送网络请求。
评论已关闭