2011-06-16 256 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分鐘或更短時間內將上述對象實現爲功能組件。當然,如果你之前沒有做過這樣的事情,那可能需要更長的時間。