2017-04-17 20 views
0

我想告訴OkHttp在哪裏保存在磁盤上的每個響應。基本上我想爲緩存保存的每個響應指定文件路徑。然後,稍後OkHttp應該訪問此路徑以查看緩存中是否有響應。我知道我們可以設置緩存目錄路徑,但我想爲每個請求設置「緩存文件路徑」。如何指定OkHttp應將每個響應保存在磁盤上以進行緩存?

我可以使用攔截器在某種意義上來處理磁盤緩存爲每個請求,然後利用提供的路徑從/磁盤獲取/設置文件的?

回答

1

OkHttp無法做到這一點。相反,它聽起來像你想要自己的磁盤持久性方案,而不是OkHttp的緩存。你可以用攔截器來做到這一點。當緩存處於極限時,請小心刪除文件!

+0

感謝您的答覆。你能否提供任何快速的代碼片段,說明我應該關注哪些特定的攔截器。你能提供一個快速的流程,我如何設置攔截器來實現這個目標?我花了整個週末去了解,但仍然不確定。謝謝!!!! – asad

+1

你會想建立自己的[CacheInterceptor] cacheWritingResponse()的版本(https://github.com/square/okhttp/blob/master/okhttp/src/main/java/okhttp3/internal/cache/CacheInterceptor的.java)。 –

+0

非常感謝!真的讓我的一天。 – asad