在 flutter 中将 http 包用于网络 API 是一个好习惯,还是使用 Retrofit、chopper 或 dio 更好?

using http package in flutter for networking APIs is a good practice OR its better to use Retrofit, chopper or dio?

其实我想知道从用户的角度来看哪个包更有利,如果有其他优势请在评论中告知。谢谢

从用户(消费者)的角度来看,http/dio/等根本不重要。

从开发人员的角度(我的经验)来看,使用 dio 包处理异常比使用 http 更容易。我在使用 http 时尝试捕获 HTTP 响应 500 时遇到了很多挫折,即使我的代码有 try/catch,我的应用程序仍然崩溃。尝试在我的 http 代码中添加超时特别困难。但是对于 dio,他们有一个内置的解决方案 (connectTimeout)。

一般来说,使用 dio 编写网络代码(我还没有尝试 ChopperRetrofit)比使用 http 编写代码更快更容易。

http 非常简单 - 适合构建演示或小型项目。

Chopper 支持转换器和拦截器,在大多数情况下已经足够好了。另外,它有 chopper_generator 用于生成零件文件。这很有帮助 time-saving.

Dio 具有更多的功能和更好的文档。一个强大的Dart Http客户端,支持拦截器、全局配置、FormData、请求取消、文件下载、超时等。中国开发社区喜欢用这个。