Skip to content
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 函式。然後,將建立的儲存傳遞給 publicStorageprivateStorage 函式,視此儲存是用作共享還是私人快取而定。

kotlin
val client = HttpClient(CIO) {
    install(HttpCache) {
        val cacheFile = Files.createDirectories(Paths.get("build/cache")).toFile()
        publicStorage(FileStorage(cacheFile))
    }
}

您可以在此處找到完整範例: client-caching