Flutter如何使用http插件

在Flutter项目中如何使用http插件发送网络请求?我已经在pubspec.yaml中添加了依赖,但不太清楚具体怎么实现GET和POST请求。能否给个完整的代码示例,包括如何处理响应和错误?另外需要做哪些安全配置,比如SSL证书验证之类的?

2 回复

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

dependencies:
  http: ^0.13.5

然后运行flutter pub get。导入包后,即可使用http.get()等方法发送网络请求。

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


在Flutter中使用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/data'),
    body: {'key': 'value'},
  );
  
  if (response.statusCode == 201) {
    print('创建成功');
  }
}

3. 高级配置

// 添加请求头
var headers = {'Authorization': 'Bearer your_token'};
var response = await http.get(
  Uri.parse('https://api.example.com/data'),
  headers: headers,
);

// 超时设置
import 'package:http/io_client.dart';
import 'dart:io';

final client = IOClient(HttpClient()
  ..connectionTimeout = const Duration(seconds: 10));

4. 错误处理

try {
  final response = await http.get(Uri.parse('https://api.example.com/data'));
  if (response.statusCode == 200) {
    // 处理成功响应
  } else {
    print('服务器错误: ${response.statusCode}');
  }
} catch (e) {
  print('网络请求失败: $e');
}

5. 响应处理

// 解析JSON响应
import 'dart:convert';

Map<String, dynamic> data = jsonDecode(response.body);
print(data['key']);

注意事项:

  • android/app/src/main/AndroidManifest.xml中添加网络权限:
<uses-permission android:name="android.permission.INTERNET"/>
  • 建议将网络请求逻辑封装在单独的Service类中
  • 对于复杂应用,可以考虑使用Dio等更强大的网络库

这样就可以在Flutter应用中轻松使用http插件进行网络通信了。

回到顶部