我认为,作为一种学习经验,我可以编写一个简单的 HTTP 客户端,将一些随机 URL 的内容打印到日志中。真的没什么好看的。
目前答案有一些尖锐的边缘,因为 Fuchsia 是一个快速发展的开源项目。希望下面的一些细节能帮助你前进。
确定能力路线
因此,您必须做一些工作来弄清楚在哪里提供和路由您需要的功能。事实上,components exercises 之一向您展示了如何为 fuchsia.net.http.Loader 功能执行此操作。了解提供/使用功能的位置可以让您确定需要在何处实例化您的组件以获得必要的功能。
您可能还会发现 Connect components 开发人员指南中的一些内容对于访问该功能很有用。
运行组件
了解功能的路由位置可以让您确定如何运行您的组件。在拓扑中实例化组件的最直接方法是使用 ffx component 动态执行此操作。但是,这需要系统中某处具有您所需功能的collection。大多数示例运行的 ffx-laboratory 领域具有一组非常有限的功能,不包括 fuchsia.net.http.Loader。
您可能需要使用 core realm shard 将您的组件静态添加到拓扑中,以便可以在提供 fuchsia.net.http.Loader 的组件和您的组件之间显式声明必要的路由。通过静态包含在产品构建中的组件,您可以使用 ffx component 命令执行它。
有关组件执行的更多详细信息,请同时查看Run components 开发人员指南。
运行 CLI 二进制文件
由于这是一个学习练习,另一种选择是将您的代码构建为二进制文件,该二进制文件在已经具有您需要的功能的组件的上下文中运行,而不是创建和运行一个全新的组件。这通常用于 CLI 工具。使用 ffx component explore 命令,您可以在现有组件中以二进制形式运行代码,该组件使用 --tools 参数提供您正在寻找的 HTTP 功能,而无需完成上述所有功能路由部分。
有关ffx component explore的更多详细信息,请参阅Explore components。