推荐答案
在 Flutter 中进行网络请求,推荐使用 http
包或 Dio
包。以下是使用 http
包进行 GET 请求的示例代码:
-- -------------------- ---- ------- ------ ------------------------ -- ----- ------ --------------- ------------ ----------- ----- - ----- -------- - ----- -------------------------------------------------------------------- -- -------------------- -- ---- - -- ---------- ---- -- ----------- -------- ---- - -------------------------- ------------ - ---- - -- --------- ---------------- ------------------------- - -
本题详细解读
1. 使用 http
包进行网络请求
http
是 Flutter 官方推荐的网络请求库,简单易用。它支持常见的 HTTP 方法,如 GET、POST、PUT、DELETE 等。
1.1 安装 http
包
在 pubspec.yaml
文件中添加依赖:
dependencies: http: ^0.13.3
然后运行 flutter pub get
安装依赖。
1.2 发起 GET 请求
使用 http.get()
方法发起 GET 请求,并通过 Uri.parse()
方法将 URL 字符串转换为 Uri
对象。
final response = await http.get(Uri.parse('https://jsonplaceholder.typicode.com/posts/1'));
1.3 处理响应
通过 response.statusCode
判断请求是否成功,如果状态码为 200,表示请求成功,可以通过 jsonDecode()
方法解析返回的 JSON 数据。
if (response.statusCode == 200) { Map<String, dynamic> data = jsonDecode(response.body); print(data); } else { print('请求失败,状态码: ${response.statusCode}'); }
2. 使用 Dio
包进行网络请求
Dio
是一个功能强大的第三方网络请求库,支持拦截器、请求取消、文件上传/下载等功能。
2.1 安装 Dio
包
在 pubspec.yaml
文件中添加依赖:
dependencies: dio: ^4.0.0
然后运行 flutter pub get
安装依赖。
2.2 发起 GET 请求
使用 Dio
发起 GET 请求的示例代码:
-- -------------------- ---- ------- ------ ----------------------- ------------ ----------- ----- - --- --- - ------ ----- -------- - ----- -------------------------------------------------------- -- -------------------- -- ---- - --------------------- - ---- - ---------------- ------------------------- - -
2.3 处理响应
Dio
的响应数据已经自动解析为 Map<String, dynamic>
类型,可以直接使用 response.data
获取数据。
if (response.statusCode == 200) { print(response.data); } else { print('请求失败,状态码: ${response.statusCode}'); }
3. 选择 http
还是 Dio
http
:适合简单的网络请求场景,轻量级,易于上手。Dio
:适合复杂的网络请求场景,功能丰富,支持拦截器、请求取消等高级功能。
根据项目需求选择合适的网络请求库。