【问题标题】:Which API or library should I use to get a JSON object我应该使用哪个 API 或库来获取 JSON 对象
【发布时间】:2015-11-25 20:15:30
【问题描述】:

我想从互联网上下载一个 JSON 对象。我看过很多HTTP Client 的例子,但我从documentation 读到

Android 6.0 版本删除了对 Apache HTTP 客户端的支持。如果您的应用正在使用此客户端并针对 Android 2.3(API 级别 9)或更高版本,请改用 HttpURLConnection 类。此 API 更高效,因为它通过透明压缩和响应缓存减少了网络使用,并将功耗降至最低。要继续使用 Apache HTTP API,您必须首先在 build.gradle 文件中声明以下编译时依赖项:

所以我应该使用HttpURLConnection,因为我发现有些人正在使用一个名为Volley 的库。

【问题讨论】:

  • 如果关于弃用,实际上,你可以很容易地发现 Volley 仍然使用弃用的 Apache 库:)

标签: android json


【解决方案1】:

如果您真的没有在您的应用程序中做任何繁重的工作,例如下载视频等,google android volley 是您现在的最佳选择。

Volley 是由 Google 开发并在 2013 年 Google I/O 期间推出的网络库。开发它是因为 Android SDK 中缺少能够在不影响用户体验的情况下工作的网络类。

为什么要排球?

  • 避免使用HttpUrlConnectionHttpClient。这些类真的很难使用,而且也不是没有错误。
  • 避免AsyncTask
  • 提供取消 API
  • 速度更快
  • 它缓存所有内容
  • 它有小的元数据操作

此外,如果您已经使用过AsyncTask,您会发现volley 非常相似,甚至更简单。 Volley 有助于避免致命的NullPointerException

前段时间,Google+ 团队针对您可用于在 Android 上发出网络请求的每种不同方法进行了一系列性能测试。在 RESTful 应用程序中使用时,Volley 的得分比其他替代方案高十倍。

但是,当用于流式操作和大量下载时,它就不那么好了。

【讨论】:

  • 这是我一直在等待的答案。非常感谢。
【解决方案2】:

是的,您必须使用HttpUrlConnection。毫无疑问,您可以使用任何库,如 VolleyRetrofit 等。但它们也使用相同的东西。

HttpUrlConnection 的文档。

【讨论】:

  • 值得使用图书馆吗?当我使用毕加索图像库时,我意识到有些事情用库做得更好。是这样吗?
  • 图书馆是为了我们的方便而设计的。 Picasso 是一个图像库,它将图像存储在缓存中,它不会一遍又一遍地下载图像。所以,如果你想使用库,你可以使用它。
【解决方案3】:

我使用 GSON 的改造“作为解析器”为我节省了很多时间 Volley 也很棒

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-03-24
    • 1970-01-01
    • 2012-08-05
    • 1970-01-01
    • 2016-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多