[英]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.