image
Cache類中get()方法就是讀取緩存中響應(yīng)體Response
看下源碼:

image.png
以上是Cache類中get()方法所有源碼,接下來對一些重要點進行分析:
首先在源碼中:
snapshot = cache.get(key);
我們到 DiskLruCache中去查看這個get()方法

image.png

image.png
可以知道通過解密后的key值獲取的Snapshot 對象值。
接下來是:
Response response = entry.response(snapshot);
到Entry中的response(...)方法去查看

image.png

image.png
總結(jié):
1:通過請求Url獲取到Snapshot對象。
2:通過Snapshot對象創(chuàng)建Entry對象。
3:通過Entry對象的response(...)方法獲取到響應(yīng)體Response對象。
4:最后通過entry.matches(request, response)進行成對的匹配判斷,如果匹配就換回Response響應(yīng)對象,不匹配就返回null并關(guān)閉獲取流。