Flutter HTTP请求 #
一、http包 #
1.1 安装 #
yaml
dependencies:
http: ^1.1.0
1.2 GET请求 #
dart
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('Failed to load data');
}
}
1.3 POST请求 #
dart
Future<void> postData() async {
final response = await http.post(
Uri.parse('https://api.example.com/users'),
headers: {'Content-Type': 'application/json'},
body: jsonEncode({'name': 'John', 'email': 'john@example.com'}),
);
}
二、dio库 #
2.1 安装 #
yaml
dependencies:
dio: ^5.4.0
2.2 基本用法 #
dart
final dio = Dio();
Future<void> fetchData() async {
try {
final response = await dio.get('https://api.example.com/data');
print(response.data);
} catch (e) {
print(e);
}
}
2.3 拦截器 #
dart
dio.interceptors.add(InterceptorsWrapper(
onRequest: (options, handler) {
options.headers['Authorization'] = 'Bearer token';
return handler.next(options);
},
onResponse: (response, handler) {
return handler.next(response);
},
onError: (error, handler) {
return handler.next(error);
},
));
三、总结 #
3.1 库对比 #
| 库 | 特点 |
|---|---|
| http | 简单轻量 |
| dio | 功能丰富 |
3.2 下一步 #
让我们学习 JSON解析!
最后更新:2026-03-28