我有一个实现okhttp3.Callback的活动,并覆盖了onFailure和onResume方法。 此活动中调用了多个不同的请求,类似于:
Request request1 = RequestBuilder.login(username,password);
okHttpClient.newCall(request1).enqueue(this);
Request request2 = RequestBuilder.getData(token);
okHttpClient.newCall(request2).enqueue(this);
我如何知道我是否在onResponse方法中从request1或request2返回,因为响应需要针对每个请求以不同方式处理?
答案 0 :(得分:3)
选项1:在onResponse(Response response)
中使用response.request()
获取RequestObject
并与您进行比较。
选项2:而不是this
,使用匿名类,如下所示:
okHttpClient.newCall(request1).enqueue(new Callback() {
@Override
public void onFailure(Request request, Throwable throwable) {
...
}
@Override
public void onResponse(Response response) throws IOException {
...
}
});
并再次提出第二个请求:
okHttpClient.newCall(request2).enqueue(new Callback() {
@Override
public void onFailure(Request request, Throwable throwable) {
...
}
@Override
public void onResponse(Response response) throws IOException {
...
}
});