如何在 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 用于 iosandroid,但我不能同时使用一个库!

拥有可在所有 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 客户端?的主要内容,如果未能解决你的问题,请参考以下文章

适用于 Web 和移动设备的 Flutter 图像选择器

适用于桌面和移动设备的 jQuery Mobile

如何在 Flutter Dart 中实现插件架构

如何在python中实现适用于N维特征向量的GMM聚类EM算法(期望最大化算法)

如何在 Apache 中实现适用于所有虚拟主机的全局 RewriteCond / RewriteRule?

Azure 通知适用于移动数据而不是 Wi-Fi