Android Facebook SDK中批量请求中的回调
我做一个批处理请求,在这个批处理请求中有两个请求(两个请求之间有依赖关系)。然后,我有3个回调,但是相对于批处理的回调似乎没有给出关于两个请求的可能错误的信息(这将非常有用,因为我只能处理一个错误,而不能处理两个请求的两个回调的两个错误) Facebook文档告诉我们: 批处理允许您在单个HTTP请求中传递多个操作的指令。您还可以指定相关操作之间的依赖关系(在下面的一节中描述)。Facebook将并行处理您的每个独立操作,并按顺序处理您的从属操作。完成所有操作后,将向您传回一个整合响应,并关闭HTTP连接 您请求的某个操作可能会抛出错误。这可能是因为,例如,您没有执行请求的操作的权限。在此场景中,批处理API抛出与标准图形API类似的响应,但封装在批处理响应语法中: 而且,在我看来,还不清楚是否有可能从消息中恢复错误 这是我的回调代码:Android Facebook SDK中批量请求中的回调,android,facebook,Android,Facebook,我做一个批处理请求,在这个批处理请求中有两个请求(两个请求之间有依赖关系)。然后,我有3个回调,但是相对于批处理的回调似乎没有给出关于两个请求的可能错误的信息(这将非常有用,因为我只能处理一个错误,而不能处理两个请求的两个回调的两个错误) Facebook文档告诉我们: 批处理允许您在单个HTTP请求中传递多个操作的指令。您还可以指定相关操作之间的依赖关系(在下面的一节中描述)。Facebook将并行处理您的每个独立操作,并按顺序处理您的从属操作。完成所有操作后,将向您传回一个整合响应,并关闭H
Request.Callback reqPublishCallback= new Request.Callback() {
@Override
public void onCompleted(Response response) {
if(response.getError() == null) {
Log.w(LOG_TAG, "reqPublishCallback: "+ "OK");
actionCreatedTextView.setText("OK action");
// Toast.makeText(context, "ACTION_CREATED", Toast.LENGTH_LONG).show();
}
else {
Log.e(LOG_TAG, "reqPublishCallback: "+ response.getError().toString());
Log.d(LOG_TAG, response.getError().getCategory().toString());
actionCreatedTextView.setText(response.getError().getCategory().toString());
}
}
};
RequestBatch.Callback batchCallback= new RequestBatch.Callback() {
@Override
public void onBatchCompleted(RequestBatch batch) {
Log.w(LOG_TAG, "Batch completed: "+ "OK");
Log.w(LOG_TAG, batch + "");
//
}
};
是否可以处理批处理回调中的所有错误?(batchCallback)在代码中没有直接的方法来处理来自批次回调的错误,这是经过设计的。这只是通知你,这批货已经完成了。理想情况下,您应该在本地(对每个请求)处理错误,但是如果您愿意,您可以在各个回调中设置一些关于错误的全局(或类级别)状态,然后在批回调中查找错误,因为它保证最后调用。
Request.Callback reqPublishCallback= new Request.Callback() {
@Override
public void onCompleted(Response response) {
if(response.getError() == null) {
Log.w(LOG_TAG, "reqPublishCallback: "+ "OK");
actionCreatedTextView.setText("OK action");
// Toast.makeText(context, "ACTION_CREATED", Toast.LENGTH_LONG).show();
}
else {
Log.e(LOG_TAG, "reqPublishCallback: "+ response.getError().toString());
Log.d(LOG_TAG, response.getError().getCategory().toString());
actionCreatedTextView.setText(response.getError().getCategory().toString());
}
}
};
RequestBatch.Callback batchCallback= new RequestBatch.Callback() {
@Override
public void onBatchCompleted(RequestBatch batch) {
Log.w(LOG_TAG, "Batch completed: "+ "OK");
Log.w(LOG_TAG, batch + "");
//
}
};