Flutter中如何使用dio网络请求库

在Flutter项目中集成dio库时遇到了一些问题:

  1. 如何在pubspec.yaml中正确添加dio依赖?
  2. 发送GET/POST请求的基本代码示例是怎样的?
  3. 如何处理请求超时和错误响应?
  4. 是否需要手动管理Cookie或Session?
  5. 文件上传/下载功能该如何实现?
    求完整示例和最佳实践建议!
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进行网络请求,步骤如下:

  1. 添加依赖pubspec.yaml 中添加:

    dependencies:
      dio: ^5.0.0
    
  2. 基本使用

    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');
      }
    }
    
  3. 常用配置

    var dio = Dio(BaseOptions(
      baseUrl: 'https://api.example.com',
      connectTimeout: Duration(seconds: 5),
      receiveTimeout: Duration(seconds: 3),
    ));
    
  4. POST请求示例

    Response response = await dio.post(
      '/user',
      data: {'name': 'John', 'age': 30},
    );
    
  5. 拦截器(添加请求头)

    dio.interceptors.add(InterceptorsWrapper(
      onRequest: (options, handler) {
        options.headers['Authorization'] = 'Bearer token';
        return handler.next(options);
      },
    ));
    
  6. 错误处理

    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

回到顶部