【发布时间】:2016-02-16 11:17:53
【问题描述】:
我有一个需要会话(cookies)来处理网络调用的应用程序。我使用Retrofit+RxJava。但是,会话可能会过期(带有 401 未授权状态的改造错误),我想重新验证(以获取新的 cookie)并在这种情况下重试之前的调用。我将如何使用RxJava?
我的例子:
getServerApi().getDialogs(offset, getCookies())
.subscribeOn(Schedulers.newThread())
.observeOn(AndroidSchedulers.mainThread())
.retryWhen(observable -> {...}) // Need some logic
.subscribe(dialogsEnvelope -> getView().setDialogs(dialogsEnvelope),
throwable -> getView().setError(processFail(throwable)));
【问题讨论】:
-
如果会话过期并且您需要重试,您是否会收到某种服务器响应来表明这一点(例如带有
"success" : false的 JSON)或者您只是一个RetrofitError? -
@david.mihola,更新了我的问题。我得到 401 Unauthorized(出现 Retorfit 错误)。
-
我想我有一个想法,但我想在发布之前尝试一下......
标签: android session retrofit rx-java