
移动
使用 Flutter 进行网络请求是开发移动应用程序中常见的任务之一。在许多情况下,我们需要发送 HTTP GET 请求来获取服务器上的 JSON 数据。本文将介绍如何使用 Flutter 发送 HTTP GET 请求并处理 JSON 响应。
发送 HTTP GET 请求在 Flutter 中发送 HTTP GET 请求的常用方式是使用http 包。首先,我们需要在 pubspec.yaml 文件中添加 http 依赖:yamldependencies: http: ^0.13.3然后,运行
flutter pub get 命令以安装依赖包。接下来,我们可以使用以下代码发送 HTTP GET 请求并处理 JSON 响应:dartimport 'dart:convert';import 'package:http/http.dart' as http;Future<void> fetchData() async { final response = awAIt http.get(Uri.parse('https://example.com/api/data')); if (response.statusCode == 200) { final JSonData = JSonDecode(response.body); // 处理 JSON 数据 print(JSonData); } else { // 处理错误状态码 print('请求失败: ${response.statusCode}'); }}上述代码使用 http 包发送了一个 GET 请求到 https://example.com/api/data,并通过 response.statusCode 检查响应的状态码。如果状态码为 200,则说明请求成功,我们可以通过 JSonDecode 方法将响应的 JSON 正文解析为 Dart 对象。否则,我们可以根据需要处理错误状态码。处理 JSON 响应一旦我们成功获取到服务器返回的 JSON 数据,我们可以对其进行操作和处理。以下是一些常见的操作:1. 访问 JSON 对象的属性:dartfinal name = JSonData['name'];final age = JSonData['age'];2. 遍历 JSON 数组:
dartfinal JSonArray = JSonData['data'] as List;final items = JSonArray.map((item) => Item.fromJSon(item)).toList();3. 将 JSON 数据转换为自定义 Dart 对象:
dartclass Item { final String name; final int price; Item({required this.name, required this.price}); factory Item.fromJSon(Map<String, dynamic> JSon) { return Item( name: JSon['name'], price: JSon['price'], ); }}以上代码演示了如何将 JSON 数据转换为自定义的 Item 对象。示例代码下面是一个完整的示例代码,展示了如何发送 HTTP GET 请求并处理 JSON 响应:dartimport 'dart:convert';import 'package:http/http.dart' as http;Future<void> fetchData() async { final response = awAIt http.get(Uri.parse('https://example.com/api/data')); if (response.statusCode == 200) { final JSonData = JSonDecode(response.body); // 处理 JSON 数据 print(JSonData); } else { // 处理错误状态码 print('请求失败: ${response.statusCode}'); }}void mAIn() { fetchData();}以上代码可以在 Flutter 项目中运行,并发送 HTTP GET 请求到指定的 URL,并将响应的 JSON 数据输出到控制台。本文介绍了如何使用 Flutter 发送 HTTP GET 请求并处理 JSON 响应。我们使用 http 包发送了一个 GET 请求,并通过状态码判断请求是否成功。一旦成功获取到 JSON 数据,我们可以根据需要进行进一步的处理,例如访问属性、遍历数组和转换为自定义对象等。Copyright © 2025 IZhiDa.com All Rights Reserved.
知答 版权所有 粤ICP备2023042255号