2017-09-27 180 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 { 
        ... 
       } 
      });