我知道我可以使用 http::BrowserClient 用于 web,我可以使用 http::Client 用于 ios 和 android,但我不能同时使用一个库!
拥有一个适用于所有 3 个平台的 http 客户端的标准实现是什么?
可以使用 https://pub.dev/packages/universal_io 它实现了一个跨平台的移动和网络客户端。
缺点:用户群小。不导入 io 或 http 包,乍一看似乎他们从这些库中复制了相关文件,这意味着 universal_io 修复错误的速度很慢。
第二个选择 是为 BrowserClient 和 Client 编写一个包装器,根据使用 dart 基础的平台提供正确的实现。
您可以使用 Client() 而不是使用 BrowserClient()。客户端支持 io 请求和 web 请求,因此它可以在桌面和 web 上工作。 即:-
使用--
import 'package:http/src/client.dart';
代替--
import 'package:http/browser_client.dart';
和使用
var client = Client();
代替
var client = BrowserClient();