繁体   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