2017-09-27 161 views
1

返回我有一个活动,实现okhttp3.Callback并覆盖onFailure和onResume方法。 有多种不同的请求被称为本次活动,类似这样:我怎么知道OkHttp调用我从

Request request1 = RequestBuilder.login(username,password); 
okHttpClient.newCall(request1).enqueue(this); 
Request request2 = RequestBuilder.getData(token); 
okHttpClient.newCall(request2).enqueue(this); 

我怎么能知道我从onResponse方法request1或请求2回,因为反应需要为每个不同的处理请求?

+0

什么'Callback'用于'排队()'方法?你试过了吗? – Pijotrek

回答

3

选项1:在onResponse(Response response)使用response.request()得到RequestObject并与您的比较。

选项2:对于所述第二请求并再次

okHttpClient.newCall(request1).enqueue(new Callback() { 
      @Override 
      public void onFailure(Request request, Throwable throwable) { 
       ... 
      } 

      @Override 
      public void onResponse(Response response) throws IOException { 
       ... 
      } 
     }); 

:代替this,使用匿名类,像这样

okHttpClient.newCall(request2).enqueue(new Callback() { 
       @Override 
       public void onFailure(Request request, Throwable throwable) { 
        ... 
       } 

       @Override 
       public void onResponse(Response response) throws IOException { 
        ... 
       } 
      });