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。