RxJava / Retrofit-发送错误的HTTP请求类型混合请求?

问题描述

我正在使用RxJava和Retrofit,并看到了一些非常奇怪的间歇性问题。我发生了两个单独的调用,并将它们添加到Composite Disposable,这似乎使它们混淆了。在一个电话中,我正在执行GET提取主页数据。在另一个示例中,我正在执行POST以将推送通知令牌发送到服务器。但是有时它试图发布到GET,反之亦然。并非总是如此,这令人难以置信地令人困惑和沮丧。

创建令牌请求:

var tokenRequest = UpdateMyDevice()
                    tokenRequest.deviceToken = prefs.getString(R.string.device_push_id)
                    tokenRequest.firebaseToken = task.result!!.id
                    tokenRequest.notificationToken = token
                    compositeDisposable.add(userManager!!.sendNotificationToken(tokenRequest).subscribe(
                        { item ->

                        },{ e ->
                            e.printStackTrace()
                        })
                    )

这是UserManager中的sendNotificationToken

public Single<MessageResponse> sendNotificationToken(UpdateMyDevice update){
    return authService.sendNotificationToken(update.jsonBody())
            .doOnError(error -> error.printStackTrace())
            .doOnSuccess(item ->{

            })
            .subscribeOn(Schedulers.io())
            .observeOn(AndroidSchedulers.mainThread());
}

和AuthService sendNotificationToken

@POST(Constants.PROFILE_URL + "/devices")
Single<MessageResponse> sendNotificationToken(
        @Body RequestBody body
);

这是获取主页数据的地方:

compositeDisposable.add(userManager!!.homePage.subscribe(
            { data ->
                //this will work most of the time?
            },{ e ->
                e.printStackTrace()
            }))

这是userManager中的主页

public Single<HomeResponse> getHomePage(){
    return contentService.getHomePage()
            .doOnError(error -> error.printStackTrace())
            .doOnSuccess(item ->{

            })
            .subscribeOn(Schedulers.io())
            .observeOn(AndroidSchedulers.mainThread());
}

和ContentService中的getHomePage(请注意,此调用和令牌调用完全不同的服务)

@GET(Constants.PROFILE_URL + "/home")
Single<HomeResponse> getHomePage();

但是我收到错误消息,说GET不是令牌端点的允许方法,而POST对于主页无效。您可以看到它们分别声明为@GET和@POST,并且应该没有问题路由。

我在做什么错?为什么这些似乎混乱或更改请求之类?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)