flutter如何调用http插件

在Flutter项目中,我想通过http插件实现网络请求,但不太清楚具体该如何调用。能否提供一个简单的示例代码,说明如何安装http插件、发送GET/POST请求以及处理返回的数据?最好能包括异常处理和响应状态码检查的部分。

2 回复

在Flutter中调用HTTP插件,首先在pubspec.yaml中添加依赖:

dependencies:
  http: ^0.13.4

然后在代码中导入:

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

使用示例:

var response = await http.get(Uri.parse('https://example.com'));
print(response.body);

支持GET、POST等常用HTTP方法。

更多关于flutter如何调用http插件的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


在Flutter中调用HTTP插件,推荐使用官方维护的 http 包。以下是详细步骤:

1. 添加依赖

pubspec.yaml 文件的 dependencies 下添加:

dependencies:
  http: ^1.1.0

然后运行 flutter pub get 安装包。

2. 基本使用

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

// GET 请求示例
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('请求失败: ${response.statusCode}');
  }
}

// POST 请求示例
Future<void> postData() async {
  final response = await http.post(
    Uri.parse('https://api.example.com/post'),
    body: {'key': 'value'},
  );
  print('响应状态:${response.statusCode}');
}

3. 高级配置

  • 设置请求头

    await http.get(
      Uri.parse('https://api.example.com/data'),
      headers: {'Authorization': 'Bearer your_token'},
    );
    
  • 处理超时

    final client = http.Client();
    try {
      final response = await client
          .get(Uri.parse('https://api.example.com/data'))
          .timeout(const Duration(seconds: 10));
    } finally {
      client.close();
    }
    

4. 注意事项

  • android/app/src/main/AndroidManifest.xml 中添加网络权限:
    <uses-permission android:name="android.permission.INTERNET" />
    
  • 对于 iOS,无需额外配置,但需确保使用 HTTPS(明文 HTTP 需在 Info.plist 中配置例外)。

5. 错误处理

建议使用 try/catch 捕获网络异常:

try {
  final response = await http.get(Uri.parse('https://api.example.com/data'));
} catch (e) {
  print('网络请求出错: $e');
}

这个插件支持 GET、POST、PUT、DELETE 等常用方法,适用于大多数 HTTP 请求场景。

回到顶部