我有以下代码
@Singleton
class LoginHandler {
private Observable<Response<User>> loginObservable;
private void attemptLogin(LoginRequest loginRequest) {
LoginSubscriber loginSubscriber = new LoginSubscriber();
loginObservable = api.login(loginRequest);
loginObservable
.observeOn(AndroidSchedulers.mainThread())
.subscribe(loginSubscriber);
}
}
使用
@POST(PATH_AUTH)
Observable<Response<User>> login(@Body LoginRequest loginRequest);
每次用户想要从深层链接登录时,此命令就会执行。
我可以登录和注销两次,但是在第三次,请求就没有执行。我还使用Charles Proxy工具检查了请求是否已实际发送,但是没有看到任何内容。
记录loginObservable
对象将显示每个api.login()
调用都返回一个不同的Observable对象,该对象对于要执行的预订是正确的。还执行doOnSubscribe(() -> ...)
处的记录,只是不执行请求本身。
我浏览了SO,发现的唯一解决方案是添加一个timeout(...)
,以便一旦发生超时,用户就可以返回登录掩码。但是,当尝试重新登录时,问题仍然存在。
所以我的问题是,我该如何调试并找出问题,在翻新过程中发生了什么?为什么在第三次尝试后请求仍未执行?
非常感谢您