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/16902716/

相关文章:

android - 解析和存储电子书内容,sqlite 索引

Windows TCP keepalive 发送没有 PSH 的 1 字节消息

java - 如何使用 Retrofit2 下载文件?

android - 如何在Android中检查Retrofit API调用是否成功

android - 如何识别安装在设备中的外部 sd 卡和该设备也有内部 sd 卡?

android - 以编程方式将应用程序小部件设置为主屏幕

Android Spinner 箭头更近?

java - 通过LAN网络(java)发送和监听swing事件?

reactjs - 创建 react 应用程序 - 访问 "On your network"不起作用

android - Google Map API 无法插入到包含 Google Map Json 的 URL 中