Android上最好的REST客户端框架/工具

58

我即将开发一款使用RESTful Web Service的Android应用程序。我不想自己编写REST客户端,因为我希望它尽可能有效和稳定(这是我第一次使用REST)。

在Android/Java中是否有任何(免费的)框架或工具可供我在项目中使用?


SOAPUI 可以发出 REST 调用,这有帮助吗? - Jimmy
据我所知,SOAPUI是一个测试框架?我还需要支持JSON。 - Gustav Gahm
此页面上有一个 REST 客户端的源代码以及一些帮助文档(虽然是针对 Jira 的,但同样适用于 Android):http://www.j-tricks.com/1/post/2012/05/java-rest-client-for-jira-using-jersey.html - martin
Volley是由Google推荐的。https://developer.android.com/training/volley/index.html - Gökçer Gökdal
个人而言,我非常喜欢 Volley 这个库。它在 Android 文档中得到了官方支持。 https://developer.android.com/training/volley/index.html https://github.com/google/volley - user2288580
5个回答

37

Restlet是一个优秀的REST框架,同时还有一个Android版本。


Restlet看起来很有前途。我一定会试试它。谢谢! - Gustav Gahm
12
尽管这样做可能很好,但我无法保证将一个0.3MB的APK转变为22MB并添加所有这些文件。 - IAmGroot
2
@Doomsknight,它被称为Proguard。 - Zaid Daghestani
使用 Volley。</br> [https://developers.google.com/events/io/sessions/325304728] Google I/O 会议库链接 https://android.googlesource.com/platform/frameworks/volley<br>以及 [http://arnab.ch/blog/2013/08/asynchronous-http-requests-in-android-using-volley/] 一个简单的博客,解释了如何使用它。 - subair_a

4

对于那些给出负评的人,欢迎解释一下为什么HTTPClient不能满足与符合RFC2616定义的“统一接口”相一致的RESTful系统进行交互的核心约束。 - Darrel Miller
2
我不是那个点踩的人,但我想可能是因为HttpClient只解决了问题的一部分,然后你还需要处理所有的XML。也许HttpClient + SAX,或者HttpClient和XmlPullParser会是一个更完整的答案。你的情况可能有所不同。 - mezmo
1
Darrel:我已经尝试过Apache的HTTPClient。但正如我所说,我不想自己编写完整的REST客户端。 - Gustav Gahm
2
mezmo:谢谢你的提示,但我正在寻找更完整的东西。我想写出这样的代码:Object response = RestClient.get("http://example.com/api/news");或者Object response = RestClient.delete("http://example.com/api/news", 20); - Gustav Gahm
3
@Gustav 叹气。我想这个网址 http://crest.codegist.org/android.html 恰好是你所需要的。但请记住,你所做的事情将无法获得 REST 的好处。如果你不介意,那就没问题了。 - Darrel Miller

4

尝试使用Spring Android - 它有一个非常方便的类RestTemplate。


1
触发了很多GC_CONCURRENT,这个有一些内存问题吗? - Timothée Jeannin

3
我也在寻找一个适用于Android的小型rest客户端解决方案。经过快速比较,我发现:
  • Resting v0.7: resting-0.7-dev-release-android.jar - 1.3MB(根据文档,这是一个包含所有内容的完整解决方案)
  • Restlet v2.1.2: org.restlet.jar - 728KB(但是需要添加httpclient扩展和json扩展后可能大于1MB)
  • Spring for Android v1.0.1: spring-android-core-1.0.1.RELEASE.jar 113KB + spring-android-rest-template-1.0.1.RELEASE.jar 186KB + gson-2.2.3.jar 194KB = 493KB(不包含认证支持,否则将需要spring social作为依赖)
如果有任何遗漏,请纠正我。

请注意,Restlet 2.2现在包含一个更轻的核心(org.restlet.jar)用于Android,默认情况下重用HttpURLConnection类。Apache HTTP客户端扩展是纯粹可选的。 - Jerome Louvel
Android版2.2.1中的org.restlet.jar实际文件大小仅为668 Kb,无需任何其他依赖项。http://maven.restlet.org/org/restlet/android/org.restlet/2.2.1/ - Jerome Louvel
@JeromeLouvel,那么Restlet的新版本内置了HttpClient和JSON支持? - Evi Song
新版本已将org.restlet.ext.net扩展合并到org.restlet核心中。我们将以前的内部HTTP连接器移动到NIO扩展中,显著减小了org.restlet核心的大小。对于JSON,它不在核心中,因为它取决于您需要如何处理它。 - Jerome Louvel
在Restlet 2.3版本中,我们还计划为“org.restlet”模块添加客户端配置文件以保存额外的大小(通过删除所有特定于服务器的代码)。 - Jerome Louvel
@JeromeLouvel,对我来说是个好消息,我一定会尝试的。谢谢。 - Evi Song

1

+1 对于 Google IO 会议的支持! - Jeshurun
2
似乎休息没有得到任何发展,并且无法将数据POST到REST服务。 - Rene
@Rene 看起来刚刚推出了一个更新来解决这个问题:https://code.google.com/p/resting/source/detail?r=123 - Ron E

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