【发布时间】:2016-03-05 03:17:14
【问题描述】:
我在一个大型项目中使用 Retrofit 1.9,即使调用失败,也必须检查响应标头中的一些数据 - 例如分析请求代码。我们已经知道异步调用的结构:
RestClient.get().asyncRequest(requestParams, new Callback<GenericResponse>() {
@Override
public void success(MyPojo pojo, Response response) {
//we can use pojo object or use whole response
}
@Override
public void failure(RetrofitError error) {
//we can handle only error but NOT response
}
});
我们如何在这两种情况下分析响应?
一种解决方案是在创建RestAdapter 时使用Profiler,例如:
RestAdapter restAdapter = new RestAdapter.Builder()
//other stuff
.setProfiler(new Profiler() {
@Override
public Object beforeCall() {
return null;
}
@Override
public void afterCall(RequestInformation requestInfo, long elapsedTime, int statusCode, Object beforeCallData) {
//get what I need
}
})
.build();
但也许有另一种解决方案可以在failure() 方法中获得响应。任何建议都将不胜感激!
【问题讨论】: