改造错误代码JSON

时间:2016-01-22 17:16:39

标签: android retrofit2

我的API成功回归:

{"error_code": 0, "last_login": "2016-01-18T22:27:20.342Z", "facebook_id": "1", "id": 1, ..}

出错:

{"error_code": 1}

我的改造界面正在返回User对象。但是如果出现错误,则所有用户字段都设置为null。我怎样才能得到错误代码? (不向用户对象添加error_code字段)

这是减速功能:

@GET("/login")
Call<User> login (@Query("facebook_id") String facebook_id);

电话:

Call<User> call = apiService.login("2");
    call.enqueue(new Callback<User>() {
        @Override
        public void onResponse(Response<User> response) {
            // Here I wan't to check somehow the error_code
            User user = response.body();
            Toast.makeText(context, "OK!", Toast.LENGTH_SHORT).show();
        }

        @Override
        public void onFailure(Throwable t) {
            Toast.makeText(context, "Failed!", Toast.LENGTH_SHORT).show();
            t.printStackTrace();
        }
    });

2 个答案:

答案 0 :(得分:0)

我用包含error_code字段的父类解决它,并且所有API对象都继承自此父对象。

答案 1 :(得分:-2)

public class User {
    public int error_code;
    //other keys like last_login

    public boolean hasError (){
        return error_code == 0;
    }

}

onResponse(..) {}区块中,请致电:

if(response.body().hasError()) {
    Toast("Error:");
}