[英]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中进行多步操作有任何帮助吗?
您可以在标头中为每个请求添加唯一的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.