【发布时间】:2020-09-09 07:41:50
【问题描述】:
我用基本改造Call对象调用api:
public interface dataApi {
@GET("animal/cats")
Call<AllAnimals> getAllData(
@Query("api_key") String apiKey
);
}
我可以像这样在我的视图模型中得到响应:
call.enqueue(new Callback<AllAnimals>() {
@Override
public void onResponse(Call<AllAnimals> call, Response<AllAnimals> response) {
animals.setValue(response.body());
}
@Override
public void onFailure(Call<AllAnimals> call, Throwable t) {
Log.i(TAG, "onFailure: " + t);
}
});
这里没什么特别的。
我对这种方法有几个问题
FIRST - 例如,如果我提供了错误的 api 密钥,则响应应该给我一个带有问题代码的响应,而不是我只得到空正文。
第二次我计划进行更多的 api 调用,而且每次我编写的调用都要处理错误,这是一个巨大的代码重复。
如何针对这种情况实施自定义错误处理,这也将应用于其他调用?
【问题讨论】:
标签: java error-handling retrofit retrofit2 retrofit2.6