Client Plugin
快取
程式碼範例: client-caching
Ktor 用戶端提供 HttpCache 外掛程式,允許您將先前擷取的資源儲存在記憶體內或持久化快取中。
新增相依性
HttpCache 只需要 ktor-client-core 構件,不需要任何特定的相依性。
記憶體內快取
要安裝 HttpCache,請將其傳遞給 用戶端組態區塊 內的 install 函式:
kotlin
import io.ktor.client.*
import io.ktor.client.engine.cio.*
import io.ktor.client.plugins.cache.*
//...
val client = HttpClient(CIO) {
install(HttpCache)
}這足以讓用戶端將先前擷取的資源儲存在記憶體內快取中。 例如,如果您對具有配置 Cache-Control 標頭的資源進行兩次連續的 請求, 由於資料已儲存在快取中,用戶端僅執行第一個請求並跳過第二個請求。
持久化快取
Ktor 允許您透過實作 CacheStorage 介面來建立持久化快取。 在 JVM 上,您可以透過呼叫 FileStorage 函式來建立檔案存儲。
要建立檔案快取存儲,請將 File 執行個體傳遞給 FileStorage 函式。 然後,根據此存儲是用作共用快取還是私有快取,將建立的存儲傳遞給 publicStorage 或 privateStorage 函式。
kotlin
val client = HttpClient(CIO) {
install(HttpCache) {
val cacheFile = Files.createDirectories(Paths.get("build/cache")).toFile()
publicStorage(FileStorage(cacheFile))
}
}您可以在此處找到完整的範例:client-caching。
