How to get Retrofit success response status codes

前端 未结 3 1603
谎友^
谎友^ 2020-11-27 17:51

I am not able to get success response status code from response like 200,201.. etc. As we can easily get error codes from RetrofitError class like error.i

3条回答
  •  [愿得一人]
    2020-11-27 18:36

    i achieved it by following codes:

    public abstract class BaseCallBack {
    
        public abstract void onSuccess(Response response);
        public abstract void onFailure(Response response);
    }
    
    public abstract class SuccessCallback extends BaseCallBack implements Callback{
    
    
        @Override
        public void onResponse(Call call, Response response) {
    
            if(response.code()>= 400 && response.code() < 599){
                 onFailure(response);
            }
            else {
                onSuccess(response);
            }
    
        }
    
        @Override
        public void onFailure(Call call, Throwable t){
    
        }
    
        @Override
        public void onSuccess(Response response) {
    
        }
    
        @Override
        public void onFailure(Response response) {
    
        }
    }
    

    When the rest api returns 400 etc then the onFailure method will be call by default. If you wanna do something onsuccess:(when returns 200 etc)

     ServiceConnector.api.getHomePage().enqueue(new SuccessCallback() {
            @Override
            public void onSuccess(Response response) {
                super.onSuccess(response);
            }
        });
    

提交回复
热议问题