【问题标题】:Refreshing auth token when call retrofit api with rxandroid使用 rxandroid 调用改造 api 时刷新身份验证令牌
【发布时间】:2015-11-05 16:15:00
【问题描述】:

我有正在工作的改造 api,它返回一些数据的 observable。

Api 使用身份验证令牌访问服务器。当身份验证令牌过期时,我有关于它的错误消息(观察者在订阅者中调用 onError)。

public Observable<MyObject> getObjectObservable() {
    return mApi.getObject();
}

我也可以用 observable 刷新令牌:

private Observable<AuthResult> restoreToken() {
    return mApi.restoreToken(new RestoreTokenBody(getRestoreToken()));
}

如何在 getObjectObservable 函数中实现下一步:

  • 首先尝试 mApi.getObject()
  • 错误刷新令牌
  • 刷新后再次调用 mApi.getObject()

【问题讨论】:

    标签: android retrofit rx-java rx-android


    【解决方案1】:

    尝试使用运算符onErrorResumeNext 类似这样的东西:

    public Observable<MyObject> getObjectObservable() {
        return mApi.getObject()
                .onErrorResumeNext(restoreToken().flatMap(authResult ->  mApi.getObject()));
    }
    

    【讨论】:

      猜你喜欢
      • 2015-01-08
      • 1970-01-01
      • 2017-11-08
      • 2020-07-07
      • 2020-02-16
      • 1970-01-01
      • 1970-01-01
      • 2016-09-06
      • 2020-08-05
      相关资源
      最近更新 更多