改造错误代码 JSON
Retrofit error code JSON
我的 API 是 return 成功:
{"error_code": 0, "last_login": "2016-01-18T22:27:20.342Z", "facebook_id": "1", "id": 1, ..}
错误:
{"error_code": 1}
我的改造界面是 returning 用户对象。但是如果出现错误,所有用户字段都将设置为空。我怎样才能得到错误代码? (不向用户对象添加 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();
}
});
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:");
}
我用包含 error_code 字段的父 class 解决它,所有 API 对象都继承自该父对象。
我的 API 是 return 成功:
{"error_code": 0, "last_login": "2016-01-18T22:27:20.342Z", "facebook_id": "1", "id": 1, ..}
错误:
{"error_code": 1}
我的改造界面是 returning 用户对象。但是如果出现错误,所有用户字段都将设置为空。我怎样才能得到错误代码? (不向用户对象添加 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();
}
});
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:");
}
我用包含 error_code 字段的父 class 解决它,所有 API 对象都继承自该父对象。