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插件进行网络通信了。

