为了账号安全,请及时绑定邮箱和手机立即绑定

OnError at observe 一个 Observable on Retrofit

OnError at observe 一个 Observable on Retrofit

慕雪6442864 2023-05-10 10:13:50
我正在尝试观察String我的aAPI但我不知道为什么当我订阅它时它总是跳转到onError方法,即使它很好地创建了我的 Retrofit Builder。我的NetworkModule:@Moduleclass NetworkModule{    /**     * Provides the Post service implementation.     * @param retrofit the Retrofit object used to instantiate the service     * @return the Post service implementation.     */    @Provides    fun provideUserAuth(): ApiSMS{        return Retrofit.Builder()            .baseUrl(BASE_URL)            .addConverterFactory(GsonConverterFactory.create())            .addCallAdapterFactory(RxJava2CallAdapterFactory.create())            .build()            .create(ApiSMS::class.java)    }}我的ApiCall:interface ApiSMS {    @get:POST("/api/auth/sign_in")    val getAuthentication: Observable<Credentials>    @get:GET("/api/status")    val getStatus: Observable<String>}我ViewModel从我观察的地方。当我调用getStatus创建我的 Retrofit 实例但只继续onSubscribe然后onError://Get Api Statusfun getStatus() {    apiSMS.getStatus        .subscribeOn(Schedulers.io())        .observeOn(AndroidSchedulers.mainThread())        .subscribe(getObserver())}private fun getObserver(): Observer<String> {    return object : Observer<String> {        override fun onComplete() {            Log.d("test", "onComplete")        }        override fun onSubscribe(d: Disposable) {            Log.d("test", "onSubscribe")            disposable = d        }        override fun onNext(t: String) {            Log.d("test", "onNext")            Log.d("test", t)        }        override fun onError(e: Throwable) {            Log.d("test", "onError")        }    }}
查看完整描述

1 回答

?
猛跑小猪

TA贡献1858条经验 获得超8个赞

如果出现该错误,您可能想检查您的BASE_URL NOT to be withouthttps

还要确保打印您的方法给出的错误。您应该可以从方法中这样调用它onError

override fun onError(e: Throwable) {
           e.printStackTrace()
        }


查看完整回答
反对 回复 2023-05-10
  • 1 回答
  • 0 关注
  • 118 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信