0

私のAPIは成功時に戻ります:

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

そしてエラーの場合:

{"error_code": 1}

私のレトロフィット インターフェイスは User オブジェクトを返します。ただし、エラーが発生した場合、すべてのユーザー フィールドが null に設定されます。エラーコードを取得するにはどうすればよいですか? (error_code フィールドを User オブジェクトに追加せずに)

関数の減速は次のとおりです。

@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();
        }
    });
4

2 に答える 2

0

error_code フィールドを含む親クラスで解決し、すべての API オブジェクトはこの親から継承します。

于 2016-03-16T22:56:14.063 に答える
-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:");
} 
于 2016-01-22T22:33:57.650 に答える