retrofit2.HttpException при переходе с Rx на корутины
Перевожу проект с RxJava на корутины и столкнулся с такой проблемой. Когда отсутствует интернет при попытке запроса на сервер приложение падает с ошибкой:
retrofit2.HttpException: HTTP 504 Unsatisfiable Request (only-if-cached) at com.jakewharton.retrofit2.adapter.kotlin.coroutines.CoroutineCallAdapterFactory$BodyCallAdapter$adapt$2.onResponse(CoroutineCallAdapterFactory.kt:104)
Использую интерцептор для кеширования.
val okHttpClient = OkHttpClient().newBuilder()
.addNetworkInterceptor(ResponseCacheInterceptor())
.addInterceptor(OfflineResponseCacheInterceptor(context))
.addInterceptor(loggingInterceptor)
.addInterceptor(interceptor)
.cache(Cache(File(context.cacheDir, "ResponsesCache"), (10 * 1024 * 1024).toLong()))
.connectTimeout(20, TimeUnit.SECONDS)
.readTimeout(20, TimeUnit.SECONDS)
.writeTimeout(20, TimeUnit.SECONDS)
.build()
val retrofit = Retrofit.Builder()
.baseUrl(BuildConfig.BASE_URL)
.addConverterFactory(GsonConverterFactory.create())
.addCallAdapterFactory(CoroutineCallAdapterFactory())
.client(okHttpClient)
.build()
С RxJavaCallAdapterFactory все работало нормально. В чем может быть проблема?