flutter 封装网络请求
时间: 2023-10-21 16:04:53 浏览: 144
网络请求的封装
Flutter提供了很多网络请求的库,如Dio、http等,我们可以根据项目需求选择适合自己的库。下面是一个简单的网络请求封装示例,使用Dio库:
1. 首先引入Dio库
```dart
dependencies:
dio: ^4.0.0
```
2. 创建一个HttpUtil类,封装网络请求方法
```dart
import 'package:dio/dio.dart';
class HttpUtil {
static final String baseUrl = "https://api.example.com";
static final Dio dio = Dio(BaseOptions(baseUrl: baseUrl));
static Future<dynamic> get(String path, {Map<String, dynamic>? queryParameters, Options? options}) async {
try {
final response = await dio.get(path, queryParameters: queryParameters, options: options);
return response.data;
} on DioError catch (e) {
return e.response?.data;
}
}
static Future<dynamic> post(String path, {Map<String, dynamic>? data, Options? options}) async {
try {
final response = await dio.post(path, data: data, options: options);
return response.data;
} on DioError catch (e) {
return e.response?.data;
}
}
}
```
3. 在需要使用网络请求的地方调用HttpUtil类的静态方法进行网络请求
```dart
final response = await HttpUtil.get("/users", queryParameters: {"page": 1});
if (response != null) {
// 处理返回数据
}
```
以上示例只是一个简单的网络请求封装,实际项目中可能需要更复杂的封装,如添加网络请求拦截器、加密解密等操作。
阅读全文