我可以根据示例来缓存响应,但是即使阅读了很多有关该主题的文章,我也无法理解缓存机制。在Retrofit2中,我们使用拦截器和重写请求标头。示例代码,
@Throws(IOException::class)
override fun intercept(chain: Interceptor.Chain): Response {
var request = chain.request()
if (!isNetworkAvailable()) {
request = request.newBuilder().header("Cache-Control",
"public, only-if-cached, max-stale=" + 60 * 60 * 24).build()
return chain.proceed(request)
}
return chain.proceed(request)
}
但是我们操纵请求头,难道不应该根据响应头来缓存工作吗?
关于缓存机制,包括有用的标头,有没有好的文章?
谢谢。