I am using the retrofit 2 and OkHttp3 to request data from server. I just added a offline cache code but It\'s not working as expected. I got the error \"Unable to resolve host
I had the same error in my project with kotlin, and I fixed it like this:
client.addInterceptor(provideOfflineCacheInterceptor(context))
client.addNetworkInterceptor(provideCacheInterceptor(context))
private fun provideOfflineCacheInterceptor(context: Context): Interceptor {
return Interceptor { chain ->
var request = chain.request()
var cacheHeaderValue = if (!hasNetwork(context)!!){
"public, only-if-cached, max-stale=" + 60 * 60 * 24 * 1
} else {
"public, max-age=" + 5
}
request = request.newBuilder().header("Cache-Control", cacheHeaderValue).build()
chain.proceed(request)
}
}
private fun provideCacheInterceptor(context: Context): Interceptor {
return Interceptor { chain ->
val request = chain.request()
var cacheHeaderValue = if (!hasNetwork(context)!!){
"public, only-if-cached, max-stale=" + 60 * 60 * 24 * 1
} else {
"public, max-age=" + 5
}
//request = request.newBuilder().build()
val response = chain.proceed(request)
response.newBuilder()
.removeHeader("Pragma")
.removeHeader("Cache-Control")
.header("Cache-Control", cacheHeaderValue)
.build()
}
}