适当的Android REST客户端

12

我为Android应用程序编写了自己的REST客户端库,但在观看了Google I/O演示之后,我意识到我完全错了(就是他们展示的第9张幻灯片)。

现在我希望以正确的方式再次实现它,但我想知道是否有一个库可以省去我的麻烦。我们在服务器端使用Jersey。

我已经查看了不同的解决方案:CRestResty,但我想找到一个Android解决方案,这样我就不必自己实现ContentProvider的东西了,还有android-jbridge,但它看起来不太活跃。

目前,我正在考虑使用RestTemplate(来自Spring Android)并自己编写相关内容,但这需要一些时间。

有更好的替代方案吗?


1
我最近尝试在Android平台上运行Jersey客户端,没有遇到任何主要问题(实际上它可以直接运行)。那么...为什么不使用已经可用的呢? - Pavel Bucek
Pavel - 我(以及许多其他人)在javax.ws.rs.core.MediaType.valueOf(MediaType.java:119)中遇到了NPE错误 - 你使用的Jersey版本是什么?你能否评论/回答这个问题:https://dev59.com/6lXTa4cB1Zd3GeqP3JvC - Kevin
嗨 Pavel,我遇到了与Kevin上面描述的完全相同的问题 - 你能帮助我们解决吗? - necromancer
我真的很想知道 Pavel 是如何做到让它起作用的,因为我也尝试过。通过一些混合和匹配的黑客技巧,实际上可以得到一个正常运行的库。有没有人有兴趣花费一些时间? - Brill Pappin
3个回答

11

Virgil Dobjanschi的《开发Android REST客户端应用程序》引起了很多讨论,因为在会议期间没有展示源代码,也没有在之后提供。

我所知道的唯一参考实现(如果您知道更多,请评论)可在Datadroid上找到(Google IO会话在/presentation下提到)。这是一个库,您可以在自己的应用程序中使用。

更新
还有其他可用的库。我不知道它们如何符合Dobjanschi的模式,但我想列出它们供您参考(文本摘自库的主页):

  • RoboSpice是一个模块化的Android库,使编写异步长时间运行的任务变得容易。它专门处理网络请求,支持缓存,并提供扩展模块的REST请求。

  • RESTDroid(目前处于alpha版本)提供了处理对REST Web服务的调用的方法。它仅包含处理这些请求的基本逻辑,可以使用模块进行扩展(提供了一些模块)。


完美。源代码在这里:https://github.com/foxykeep/datadroid - MasterScrat
据我所知,Datadroid并没有完全使用Dobjanschi的模式。也就是说,与其在后台触发ContentProvider方法执行网络操作,你需要显式地启动网络操作并等待来自网络的结果。在示例应用程序工作的方式中,SQLite数据库并不是真正必要的。(我可能对此有所误解;对于这样一个简单的任务来说,代码非常复杂。) - Timmmm
2
请注意,DataDroid的第二版已在圣诞假期期间发布。它简化了您需要编写的代码,并为Web服务管理添加了更多功能。@Timmmm:DataDroid使用Dobjanchi演示中的A模式。您所说的是B模式 :) - Foxykeep
1
这可能对学习Android REST客户端实现的人非常有帮助。 Dobjanschi的演示以PDF形式转录:https://drive.google.com/file/d/0B2dn_3573C3RdlVpU2JBWXdSb3c/edit?usp=sharing - Kay Zed

1
this博客文章中可以明显看出,Jersey客户端从2.16版开始支持Android
作者引用:

从Jersey版本2.16开始,应该可以在Android上使用Jersey客户端。

然而,我发现有一个错误仍未解决(截至2015年2月)。
如果您的服务器正在使用Jersey RESTful实现,则最好选择使用Jersey客户端。如果您正在寻找Android REST客户端,则应尝试Jersey客户端版本2.16(或更高版本)。

1

另一个很棒的库,有点类似于RoboSpice,是Mechanoid Ops。它遵循Virgil在IO 2010介绍/描述的模式。Mechanoid还提供了其他有用的功能,例如SQLite数据库管理。

在此处查看更多 http://robotoworks.com/mechanoid/doc/index.html


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接