簡體   English   中英

如何在ION和Volley中處理多個請求的響應

[英]how to handle multiple request's response in ION and Volley

我正在使用instagram API,因為我已經將ion lib用於API請求,我的問題是如何使用這樣的代碼處理多個請求的響應

public class UserProfileActivity extends AppCompatActivity implements
   FutureCallback {
        :
        :
   Ion.with(context)
   .load("http://example.com/test1")
   .asString()
   .setCallback(this);

  Ion.with(context)
  .load("http://example.com/test2")
  .asString()
  .setCallback(this);

   @Override
   public void onCompleted(Exception exception, String response) {
    }

 }

//and i don't want to use like this (anonymous class )

  Ion.with(context)
  .load("http://example.com/thing.json")
  .asJsonObject()
  .setCallback(new FutureCallback() {
      @Override
      public void onCompleted(Exception e, JsonObject result) {
      // do stuff with the result or error
    }
 });

在這種情況下,如果我要請求2個請求test1和test2,如何在一個回調中區分2個請求響應

和Volley也一樣

編輯

在Android中進行多步操作有任何幫助嗎?

問題#635

您可以在標頭中為每個請求添加唯一的Id值(鍵必須相同),然后在響應中檢查相同的請求ID。 請注意,您需要使用“ .withResponse() ”並實現“ FutureCallback <Response> ”。

public class UserProfileActivity extends AppCompatActivity implements
   FutureCallback<Response<String>> {
        :
        :
   Ion.with(context)
   .load("http://example.com/test1")
   .setHeader("REQUEST_ID","test1")
   .asString()
   .withResponse()
   .setCallback(this);

  Ion.with(context)
  .load("http://example.com/test2")
  .setHeader("REQUEST_ID","test2")
  .asString()
  .withResponse()
  .setCallback(this);

   @Override
   public void onCompleted(Exception exception, Response<String> response) {
         if (response.getRequest().getHeaders().get("REQUEST_ID").equals("test1")) {
             //do something based on response of test 1
         }else if (response.getRequest().getHeaders().get("REQUEST_ID").equals("test2")) {
             //do something based on response of test 2
         }
    }

 }

在上面的示例中,您可以將“ REQUEST_ID”設置為常量。

您可以在中傳遞任何類,片段或活動的上下文

1- .setCallBack(上下文)

之后,在您提供上下文的類,片段或活動中實現FutureCallBack。

在實現FutureCallBack之后,它將聲明onComplete()方法,您將從中獲取響應。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM