Flutter中如何使用dio网络请求库
在Flutter项目中集成dio库时遇到了一些问题:
- 如何在pubspec.yaml中正确添加dio依赖?
- 发送GET/POST请求的基本代码示例是怎样的?
- 如何处理请求超时和错误响应?
- 是否需要手动管理Cookie或Session?
- 文件上传/下载功能该如何实现?
求完整示例和最佳实践建议!
2 回复
在Flutter中使用dio,首先在pubspec.yaml中添加依赖:
dependencies:
dio: ^5.0.0
然后导入库:
import 'package:dio/dio.dart';
创建Dio实例并发送GET请求:
var dio = Dio();
var response = await dio.get('https://example.com');
print(response.data);
支持POST、拦截器等功能。
更多关于Flutter中如何使用dio网络请求库的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
在Flutter中使用dio进行网络请求,步骤如下:
-
添加依赖 在
pubspec.yaml中添加:dependencies: dio: ^5.0.0 -
基本使用
import 'package:dio/dio.dart'; void fetchData() async { try { var dio = Dio(); Response response = await dio.get('https://api.example.com/data'); print(response.data); } catch (e) { print('Error: $e'); } } -
常用配置
var dio = Dio(BaseOptions( baseUrl: 'https://api.example.com', connectTimeout: Duration(seconds: 5), receiveTimeout: Duration(seconds: 3), )); -
POST请求示例
Response response = await dio.post( '/user', data: {'name': 'John', 'age': 30}, ); -
拦截器(添加请求头)
dio.interceptors.add(InterceptorsWrapper( onRequest: (options, handler) { options.headers['Authorization'] = 'Bearer token'; return handler.next(options); }, )); -
错误处理
try { await dio.get('/path'); } on DioException catch (e) { if (e.response != null) { print(e.response?.data); } else { print(e.message); } }
主要功能包括:请求/响应拦截、全局配置、FormData、文件上传/下载等。建议查看官方文档获取完整示例:https://pub.dev/packages/dio

