2016-11-11 41 views
1

我想知道是否有辦法在RxJava + Retrofit2中使用結果代碼。假設我有一個電話RxJavaCallAdapter和結果代碼

api.getAll() 
    .subscribeOn(Schedulers.io()) 
    .observeOn(AndroidSchedulers.mainThread()) 
    .subscribe(data -> { 
     // Do something 
    }); 

我想檢查呼叫的結果代碼。我的意思不僅僅是錯誤處理,例如我正在談論204無內容。我在Google上沒有找到任何內容,所以不勝感激。由於

+1

你可以嘗試在[迴應]包裝它(https://開頭廣場。 github.io/retrofit/2.x/retrofit/retrofit2/Response.html)對象 – Blackbelt

回答

2

聲明API調用這樣

Observable<Response<MyResponseObject>> apiCall(@Body body); 

和用戶做這樣的...

apiCall.getAll() 
     .subscribeOn(Schedulers.io()) 
     .observeOn(AndroidSchedulers.mainThread()) 
     .subscribe(new Observer<Response<MyResponseObject>>() { 
         @Override 
         public void onCompleted() { 

         } 

         @Override 
         public void onError(Throwable e) { 

         } 

         @Override 
         public void onNext(Response<MyResponseObject>> response) { 
          //get response code like 
          if(response.code()==202){ 

          } 
         } 
        }); 
+0

好看又簡單,應該有這個想法 – TheJudge