【发布时间】:2018-03-24 04:54:36
【问题描述】:
我在 Android 上使用 Retrofit2 /RxJava。我的 POST 电话通常工作正常。但现在我添加了来自另一个位置的呼叫。调用时,没有发送 HTTP 发布请求,也没有错误/异常。 HttpInterceptor 也没有看到调用。在这种情况下,我很难找出我做错了什么。
mAccountManager.onAuthChange()
.subscribeOn(Schedulers.io())
.subscribe(authCode -> {
if (mAccountManager.isLoggedIn(authCode)) {
someOtherApi.getIds()
.subscribeOn(Schedulers.io())
.subscribe(idList -> {
mUserApi.doSomething(idList);
});
}
});
...
@POST("/api/users/dosomething")
Observable<Void> doSomething(@Body IdList idList);
我确保通过放置断点来调用改造 api。
知道我错过了什么吗?
【问题讨论】:
-
确保它在
if (mAccountManager.isLoggedIn(authCode))条件内。还要为mAccountManager.onAuthChange()添加 onError 部分,看看它是否给出任何错误 -
请看我的编辑
-
你的 onAuthChange 确实被调用了,但我要求的是在它到达
subscribe部分后检查你的条件是否得到满足 -
好的,
mUserApi.doSomething(idList)返回 observable 并且在您订阅它之前不会触发。所以你也必须订阅mUserApi.doSomething(idList),然后才会触发 -
@SandipSoni 谢谢 - 这就是问题所在。请添加为答案,我将标记为已接受
标签: java android retrofit retrofit2