Skip to main content

网络和数据

俗话说,“人非岛屿”,一个没有网络功能的 Flutter 应用可能会感觉有点脱节。本页面介绍如何向你的 Flutter 应用添加网络功能。你的应用将检索数据,将 JSON 解析成可用的内存表示,然后再次发送数据。

网络数据检索简介

#

最简单的方法是,假设你使用http包来适应基于 Dart VM 的平台和基于 Web 浏览器的环境之间的网络访问差异,发出 HTTP GET 请求可以像下面这样简单:

dart
import 'package:http/http.dart' as http;

void main() async {
  var response = await http.get(
    Uri.parse('https://jsonplaceholder.typicode.com/albums/1'),
  );
  print(response.body);
}

以下两个教程将向你展示将http包添加到你的应用中涉及的所有细节,无论你是在 Android、iOS、Web 浏览器内还是在 Windows、macOS 或 Linux 上原生运行。第一个教程将向你展示如何向网站发出未经身份验证的 GET 请求,将检索到的数据解析为 JSON,然后显示结果数据。第二个教程在此基础上添加身份验证标头,从而可以访问需要授权的 Web 服务器。Mozilla 开发者网络 (MDN) 的文章提供了有关授权如何在 Web 上工作的更多背景信息。

利用从网络检索到的数据

#

从网络检索数据后,你需要一种方法将网络数据转换为可在 Dart 中轻松使用的格式。上一节中的教程使用手工编写的 Dart 将网络数据转换为内存表示。在本节中,你将看到处理此转换的其他选项。第一个链接到一个 YouTube 视频,其中概述了freezed。第二个链接到一个代码实验室,该实验室使用 JSON 解析的案例研究来介绍模式和记录。

双向传输,再次发出数据

#

现在你已经掌握了检索数据的技巧,是时候看看如何发出数据了。此信息从将数据发送到网络开始,然后深入研究异步性。事实是,一旦你进行网络对话,你就需要处理这样一个事实:物理上距离较远的 Web 服务器可能需要一段时间才能响应,并且在等待数据包往返期间,你无法停止向屏幕渲染。Dart 对异步性有很好的支持,Flutter 也是如此。你将在教程中了解所有关于 Dart 支持的内容,然后在“每周 Widget”视频中了解 Flutter 的功能。完成后,你将学习如何使用 DevTool 的网络视图调试网络流量。

扩展资料

#

现在你已经掌握了使用 Flutter 的网络 API 的方法,了解 Flutter 的网络使用情况会有所帮助。第一个代码实验室(表面上是关于在 Flutter 中创建自适应应用程序的),使用用 Dart 编写的 Web 服务器来解决 Web 浏览器的跨源资源共享 (CORS) 限制

接下来,是一个长篇 YouTube 视频,Flutter DevRel 校友 Fitz 在其中讨论了数据位置对于 Flutter 应用的重要性。最后,是 Flutter GDE Anna (Domashych) Leushchenko撰写的一系列非常有用的文章,介绍了 Flutter 中的高级网络。

反馈

#

由于本网站的此部分正在不断发展,我们欢迎您的反馈