android - Retrofit 在错误回调中添加自定义对象。失败时

标签 android retrofit retrofit2

嗨,我正在使用改造,我的回调如下

       @Override
public void onResponse(final Call<T> call, Response<T> response) {

    if (response.isSuccessful()) {
       passing this to my view

    } else {


 //      as this failed other then 200      retroCallback.onFailure(call, new Throwable(""));

    }
}

@Override
public void onFailure(Call<T> call, Throwable t) {
    retroCallback.onFailure(call, t);
}

所以在此我如何传递我的 ErrorBean 而不是 Throwable 无论如何我们可以在 onFailure 中传递自定义模型?当我的服务器以某种格式给我响应时,我想传递该格式..我正在使用改造 2.1.0

最佳答案

您可以子类化 Throwable 并使用组合传递附加对象。

public class ErrorBean extends Throwable {
    public ErrorPayload payload = null;

    public ErrorBean(ErrorPayload payload) {
        this.payload = payload;
    }
}

然后,在 onError 中:

@Override
public void onFailure(Call<T> call, Throwable t) {
    retroCallback.onFailure(call, t);
    if (t instanceof ErrorBean) {
        // do your stuff here
        ((ErrorBean)t).payload.text;
    }
}

关于android - Retrofit 在错误回调中添加自定义对象。失败时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39250837/

相关文章:

Android NFC 标签(通用阅读器)

android - Android 2.3 的 ActionBarSherlock ShareActionProvider 不工作

android - 如何使用数组改造解析 JSON 对象

java - 当我从短信收到经度和纬度时,如何在谷歌地图中添加标记

java - 大 Nerd 牧场 Android。 RecyclerView不会显示数据

android - 如何从 Observable 手动请求事件?

android - 将 CookieHandler 与 OkHttp 和 Retrofit 2 一起使用

android - 在模块(android 库)中使用改造 2.4.0 时出现 NoClassDefFoundError

android - RxJava - 重复 API 调用直到返回所有项目

android - GSON 映射键值对