我正在使用Retrofit2和RxJava2CallAdapter,我遇到了一个问题,那就是如何区分客户端取消的请求和服务器端取消的请求。
如果我的用户离开已启动请求的当前屏幕,请求将被取消,这是预期的行为。
但是,有时我会得到:
HTTP FAILED: java.io.IOException: Canceled
或HTTP FAILED: java.net.SocketException: Socket closed
如果服务器取消请求(非常罕见且难以重现),但这些错误不会传输到DisposableObserver。如果我查看CallExecuteObservable的代码,可以看到如果请求被取消,DisposableObserver中不会触发任何东西(既不会触发onError(),也不会触发onComplete())。
所以我的问题是:有没有可能做出改变和/或处理这种情况?提前谢谢。
发布于 2020-08-14 14:51:39
对我有帮助的是替换:
implementation 'com.jakewharton.retrofit:retrofit2-rxjava2-adapter:1.0.0'
通过以下方式:
implementation 'com.squareup.retrofit2:adapter-rxjava2:2.9.0'
这对我解决这个问题很有帮助,我每次都会调用onError()。更多信息请访问:https://github.com/JakeWharton/retrofit2-rxjava2-adapter
https://stackoverflow.com/questions/43357493
复制相似问题