flutter如何进行网络请求

在Flutter中进行网络请求有哪些常用的方法?比如http、dio这些库该怎么使用?能不能提供一个简单的代码示例?另外,如何处理网络请求中的错误和异常?还有,如何优化网络请求的性能,比如缓存和重试机制?

2 回复

Flutter中常用httpDio库进行网络请求。http是官方基础库,Dio功能更强大,支持拦截器、文件上传等。示例代码:

import 'package:http/http.dart' as http;

void fetchData() async {
  var response = await http.get(Uri.parse('https://api.example.com/data'));
  if (response.statusCode == 200) {
    print(response.body);
  }
}

建议使用Dio处理复杂需求。

更多关于flutter如何进行网络请求的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


在 Flutter 中,网络请求通常使用 http 包或 Dio 库实现。以下是两种方法的示例:

1. 使用官方 http

步骤:

  1. 添加依赖到 pubspec.yaml
    dependencies:
      http: ^1.1.0
    
  2. 执行 flutter pub get 安装包。
  3. 代码示例:
    import 'package:http/http.dart' as http;
    
    Future<void> fetchData() async {
      final response = await http.get(Uri.parse('https://api.example.com/data'));
      if (response.statusCode == 200) {
        print('响应数据:${response.body}');
      } else {
        throw Exception('请求失败');
      }
    }
    

2. 使用第三方 Dio 库(功能更强大)

步骤:

  1. 添加依赖:
    dependencies:
      dio: ^5.0.0
    
  2. 安装后使用:
    import 'package:dio/dio.dart';
    
    Future<void> fetchData() async {
      final dio = Dio();
      try {
        final response = await dio.get('https://api.example.com/data');
        print('响应数据:${response.data}');
      } catch (e) {
        print('请求错误:$e');
      }
    }
    

关键点:

  • 异步处理:使用 async/awaitFuture 处理请求。
  • 错误处理:检查状态码或使用 try/catch
  • 数据解析:通过 json.decode() 或直接使用 Dio 的自动转换功能。

推荐使用 Dio,它支持拦截器、文件上传等高级功能。

回到顶部