我正在使用的API为成功和失败提供了完全不同的响应。
成功:
{
"token":"asdfasdfhkAADBSKJBJBJKBJBK^%&BJBLLKHKJBXZ",
"email":"sample@sample.com",
"role":"admin"
}
失败:
{
"name": "NotAuthenticated",
"message": "Invalid login.",
"code": 401,
"className": "not-authenticated"
}
我很擅长改造并使用以下代码拨打电话。
LoginRequest request = new LoginRequest(mobileNumber, password);
ApiInterface apiService = ApiClient.getClient().create(ApiInterface.class);
Call<LoginResponse> call = apiService.authenticateUser(request);
call.enqueue(new Callback<LoginResponse>() {
@Override
public void onResponse(Call<LoginResponse> call, Response<LoginResponse> response) {
}
@Override
public void onFailure(Call<LoginResponse> call, Throwable t) {
}
});
如您所见,改造迫使我对ResponseObject
和success
使用示例failure
。因此我无法将失败响应转换为pojo。
我看过自定义反序列化。但是为每个请求编写自定义反序列化器很快就会失控。
请帮忙。
答案 0 :(得分:0)
我认为最好的解决方案是让我们自己在GSON中进行Response Body形式的改造和序列化。我也在寻找其他类型的解决方案。