【问题标题】:Asynchronous HTTP Request, queuing requests异步 HTTP 请求,排队请求
【发布时间】:2011-06-16 08:01:16
【问题描述】:

我之前为appstore开发过,我用过ASIHTTPRequest。 Android 有类似的东西吗?

我正在考虑发出一些 HTTP 请求,这些请求是排队且可管理的。这是我需要做的:

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

ASIHTTPRequest for IOS 非常擅长处理这个问题。无论如何我可以用Android做到这一点吗?我返回的大部分内容是 XML,没有二进制数据。

非常感谢任何反馈。

【问题讨论】:

  • 没有看到一个特定的android库,但是你可以使用相同的线程池模式来实现,看到这个问题stackoverflow.com/questions/3905349/…
  • 感谢您向我指出 Azlam。实际上我有点急于完成这个应用程序,所以想知道,它可能与 ASIHTTP 不完全一样,但它可以帮助我将请求排队并处理它们。

标签: java android xml httprequest


【解决方案1】:

您所描述的构建并不太复杂。

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

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

当请求对象中发生事件时,会在监听对象上调用事件方法……如果是队列……可以适当地做出反应。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-04-03
    • 1970-01-01
    • 2022-11-28
    • 2015-10-24
    • 2018-04-10
    • 2017-07-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多