我如何知道我正在回复的OkHttp电话

时间:2017-09-27 11:09:59

标签: java android okhttp3

我有一个实现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返回,因为响应需要针对每个请求以不同方式处理?

1 个答案:

答案 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 {
                    ...
                }
            });