2011-06-16 290 views
3

我已经开发了用于appstore之前,我用ASIHTTPRequest。 Android有没有类似的东西?异步HTTP请求,排队请求

我正在寻找几个HTTP请求,这些请求是排队和可管理的。这是我需要做的:

  1. 设置让我们说6个http请求的队列。
  2. 一旦队列被设置,执行它与每个请求给我一个成功/失败的结果。
  3. 如果一个请求失败,我可以选择取消/清除整个队列。
  4. 如果队列中的所有请求均成功,我可以对整个队列的成功事件进行另一次回调。
  5. 而且,每个请求可以有一个重试计数;含义;我可以说每个请求可以重试n次,然后才能返回失败。

ASIHTTPRequest对于IOS在处理这件事方面相当不错。无论如何,我可以用Android做到这一点?我返回的大部分内容是XML,没有二进制数据。

任何反馈是非常赞赏。

+1

没有看到针对android的特定库,但是您可以使用相同的线程池模式来实现,请参阅此问题http://stackoverflow.com/questions/3905349/http-request-queue-with-worker-pool – Azlam 2011-06-16 08:36:18

+0

感谢您向我指出Azlam。实际上,我们有点急于完成这个应用程序,所以想知道,可能不完全像ASIHTTP,但可以帮助我排列请求并处理它们。 – Veeru 2011-06-16 08:55:37

回答

1

你所描述的不是过于复杂的构建。

  1. 扩展java.util.Queue中
  2. 创建自定义的“监听器”界面,可以满足您需要跟踪的所有事件。
  3. 允许设置“侦听器”的自定义请求对象。
  4. 您的自定义队列将有一个线程来处理它自己的队列中的项目。
  5. 根据您的具体要求,您可能还需要额外的接口/侦听器来将最终响应传递回发出初始请求的对象。

将对象添加到队列时,您的队列会将自己设置为自定义请求对象上的“侦听器”。

当请求对象中发生事件时,事件方法将在侦听器对象上调用...在队列...可以适当反应的情况下调用。

我怀疑像ASIHTTPRequest这样的东西在Java/Android中并不存在,因为它不像iOS上那样难以解决问题。我可以在20分钟或更短时间内将上述对象实现为功能组件。当然,如果你之前没有做过这样的事情,那可能需要更长的时间。