如何在 dart 中实现适用于移动设备和 Web 的 http 客户端?
Posted
技术标签:
【中文标题】如何在 dart 中实现适用于移动设备和 Web 的 http 客户端?【英文标题】:How can I implement an http client in dart that works on mobile and web? 【发布时间】:2021-09-29 08:00:07 【问题描述】:我知道我可以将 http::BrowserClient 用于 web,我可以将 http::Client 用于 ios 和 android,但我不能同时使用一个库!
拥有可在所有 3 个平台上运行的 http 客户端的标准实现是什么?
【问题讨论】:
http::Client
不是应该已经在所有平台上工作了吗? http::Client
已经是http::IOClient
(用于Android、iOS 等)和http::BrowserClient
(用于Web)和its factory constructor 共享的通用接口,如果dart:io
则its factory constructor "[creates] an IOClient
可用,如果dart:html
可用,则为BrowserClient
。
看来你是对的,我应该删除我的问题吗?
【参考方案1】:
可以使用https://pub.dev/packages/universal_io,它实现了一个跨平台的移动和网络客户端。
缺点:用户群小。不导入 io 或 http 包,乍一看似乎他们从这些库中复制了相关文件,这意味着 Universal_io 修复错误的速度很慢。
第二种选择是为 BrowserClient 和 Client 编写一个包装器,根据使用 dart 基础的平台提供正确的实现。
【讨论】:
以上是关于如何在 dart 中实现适用于移动设备和 Web 的 http 客户端?的主要内容,如果未能解决你的问题,请参考以下文章
如何在python中实现适用于N维特征向量的GMM聚类EM算法(期望最大化算法)