Android:与服务器API通信的服务

时间:2015-04-11 06:18:53

标签: android retrofit asynchttpclient

我正在使用AsyncHTTPClient与我的服务器API进行通信。

我读过我必须使用services与服务器通信。

1)AsyncHTTPClient已经service了吗?或者我是否仍需要将使用AsyncHTTPClient的所有方法都放入我自己的services?或者可以直接从我的活动中调用AsyncHTTPClient方法吗?

2)我无法理解如何正确使用services。假设我不使用AsyncHTTPClient,但我有几个不同的行为可以调用服务器API(获取 现实获取 用户发布 用户等)。我是否必须将每个操作放入单独的service?如果没有,我如何从同一个服务调用不同的方法?我看到的所有示例都表明,只有一个操作会在Activity启动时自动调用。

3)我发现了另一个Android REST库Retrofit - 它比AsyncHTTPClient有什么优势吗?我是否需要将其放入services

1 个答案:

答案 0 :(得分:1)

首先,我建议您使用Retrofit。我已经使用过AsynHttp,但现在我正在使用Retrofit,我对它非常满意。

关于问题中的主题:

  

我读过我必须使用服务与服务器通信。

你在哪里读到这个?我没有为我的请求创建服务,所有这些都很好。创建请求的要点是在后台线程中创建它们。因此,如果您不使用AsyncHttp或Retrofit之类的lib,则必须将您的请求放在AsynTask类中。例如。

  

AsyncHTTPClient已经是服务吗?

没有。它是一个发出异步HTTP请求的库。在the site of the lib中,他们说:

所有请求都是在您应用的主UI线程之外发布的 您还可以在服务或后台线程中使用 < /强>

也就是说,您可以在服务中使用它,但他们并不是说您必须在服务中使用它。

该站点中的示例教授如何使用此库创建RestClient。这是一个很好的例子。您只需要创建一个静态类并将方法放到您的帖子中,获取等等

  

我无法理解应该如何正确使用服务。

Services用于后台长时间运行的操作。将服务与lib(AsyncHttp或Retrofit)一起使用的一种可能方法是,当您想要向服务器发出请求时,即使用户未使用您的应用程序也是如此。因此,您可以使用计时器创建一个服务,该计时器将按照您定义的时间间隔调用服务器。

  

改造 - 它是否比AsyncHTTPClient有任何优势?

支持Retrofit,您不必再将其放入服务中。只有你需要这个。他们说,从threir网站开始, Retrofit将您的REST API转变为Java接口。这使得您的客户端非常简单,并且自我记录,因为每次调用您的服务器API都将是此接口中的一种方法,我认为这是一个很大的优势。使用Retrofit很简单。正如我所说,现在我改为Retrofit,我可以说,lib有很好的文档和支持,它有很多用户。所以很容易找到一些bug的解决方案。其他优点是它已经具有lib GSON,这对于解析将从服务器API接收的JSON非常有用。

但当然谈论优势是危险的,因为你可以找到许多个人意见。见this question and its answers。我认为那里的一些答案也可以帮助您做出选择。

要完成,这里有一些链接,其中包含有关Retrofit以及如何使用这个功能强大的库创建请求的教程。