异步HTTP请求,请求排队

4

我之前曾经为Appstore开发过应用,使用了ASIHTTPRequest。在Android中有类似的东西吗?

我希望做一些HTTP请求,并将其排队和管理好。以下是我需要做的事情:

  1. 设置一个包含6个HTTP请求的队列。
  2. 一旦队列设置好,执行每个请求并给出成功/失败的结果。
  3. 如果一个请求失败,我有清除整个队列的选项。
  4. 如果队列中的所有请求都成功,我可以获得整个队列成功事件的回调。
  5. 每个请求都可以有重试次数;也就是说,我可以指定每个请求在返回失败之前可以重试n次。

对于IOS,使用ASIHTTPRequest处理这一问题非常好。那么,在Android上我该如何实现呢?我的大多数返回内容是XML而不是二进制数据。

非常感谢您提供任何反馈。


1
还没有看到针对Android的特定库,不过您可以使用线程池模式来实现。请参考这个问题:http://stackoverflow.com/questions/3905349/http-request-queue-with-worker-pool - Azlam
谢谢你指出来,Azlam。我现在有点赶着完成这个应用程序,所以想知道,也许不需要完全像ASIHTTP那样,但是有类似的东西可以帮助我排队请求并且处理它们。 - Veeru
1个回答

2
您所描述的内容并不是过于复杂的构建。
  1. 扩展 java.util.Queue。
  2. 创建自定义“监听器”接口,处理所有需要跟踪的事件。
  3. 自定义请求对象,允许设置“监听器”。
  4. 您的自定义队列将有一个线程来处理其自己的队列中的项。
  5. 根据您的确切要求,您还可能需要一个额外的接口/监听器,将最终响应传递回发出初始请求的对象。

将一个对象添加到队列中时,您的队列将在自定义请求对象上将自己设置为“监听器”。

当请求对象中发生事件时,将在监听器对象上调用事件方法...在此处,即队列对象...以便可以适当地进行反应。

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


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