android - Android 网络库 : OkHTTP, Retrofit 和 Volley 的比较

标签 android networking retrofit android-networking

<分区>

来自学习 Android 的 iOS 开发者的两部分问题,正在开发一个 Android 项目,该项目将发出从 JSON 到图像再到音频和视频的流式下载的各种请求:

  1. 在 iOS 上我使用了 AFNetworking项目广泛。是否有适用于 Android 的等效库?

  2. 我已经阅读了 OkHTTPRetrofit通过 Square,以及 Volley但还没有与他们一起开发的经验。我希望有人可以为每个人提供一些最佳用例的具体示例。从我读到的内容来看,OkHTTP 似乎是三者中最健壮的,并且可以处理这个项目的要求(如上所述)。

最佳答案

I'm hoping someone can provide some concrete examples of best use cases for each.

如果您正在与 Web 服务通信,请使用 Retrofit。如果要下载图像,请使用对等库 Picasso。如果您需要执行位于 Retrofit/Picasso 之外的 HTTP 操作,请使用 OkHTTP。

Volley 大致与 Retrofit + Picasso 竞争。从好的方面来说,它是一个图书馆。不利的一面是,它是一个未记录的 一个不受支持的“将代码扔到墙上并对其进行 I|O 演示”库。

编辑 - Volley 现在得到了 Google 的正式支持。欢迎咨询Google Developer Guide

From what I've read, seems like OkHTTP is the most robust of the 3

如果可用,Retrofit 会自动使用 OkHTTP。有一个 Gist from Jake Wharton将 Volley 连接到 OkHTTP。

and could handle the requirements of this project (mentioned above).

根据“流式传输”的传统定义,您可能不会将它们用于“音频和视频的流式下载”。相反,Android 的媒体框架将为您处理这些 HTTP 请求。

话虽如此,如果您打算尝试进行自己的基于 HTTP 的流式传输,OkHTTP 应该可以处理该场景;我不记得 Volley 会如何处理这种情况。 Retrofit 和 Picasso 都不是为此而设计的。

关于android - Android 网络库 : OkHTTP, Retrofit 和 Volley 的比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44228707/

相关文章:

android - 动态添加新字符串到资源字符串数组

java - Chronometer 初始值错误

c# - 对于我必须连接到服务器的每个 Tcp 连接,我如何单独管理每个连接?

android - 使用 Retrofit 和 Gson 提取 JSON 数据

android - Retrofit:是否可以传递 bean 并获得表单编码?

java - 在 Android 上重复注释

android - SQLiteDiskIOException : disk I/O error when creating database

python - 获取运行python脚本的Windows计算机的名称?

macos - 用于测试客户端/服务器交互的邪恶代理

android - 改造,请求get带非必须参数