前言
看名字就知道此拦截器的作用是处理缓存。具体来说就是:
- 对于某个请求,查找合适的缓存。若没有则向下一个拦截器传递
- 更新缓存
缓存命中策略
-
底层采用
DiskLruCache
框架进行缓存 -
命中策略:根据HTTP的头信息:
等头信息来决定是否命中缓存。
更新/保存缓存
只会缓存GET
方法请求的响应
可能触发的事件
cacheHit(call: Call, response: Response)
:缓存命中时触发cacheMiss(call: Call)
:缓存没有命中时触发satisfactionFailure(call: Call, response: Response)
:没有命中缓存,同时也不能重新发起请求时触发cacheConditionalHit(call: Call, cachedResponse: Response)
:命中候选缓存时触发(候选缓存时需要进一步做有效性验证的缓存)。cacheConditionalHit
与cacheHit
或cacheMiss
不是互斥的,因此可能都触发。如果都触发,那么cacheConditionalHit
一定在cacheHit
或cacheMiss
的前面触发