Client Plugin
Cookie
程式碼範例: client-cookies
Ktor 客戶端允許您透過以下方式手動處理 Cookie:
HttpCookies 插件會自動處理 Cookie 並將它們保留在呼叫之間的儲存中。預設情況下,它使用記憶體內儲存,但您也可以使用 CookiesStorage 實作持久性儲存。
新增依賴項
HttpCookies
僅需要 ktor-client-core 構件,不需要任何特定的依賴項。
安裝和配置 HttpCookies
要安裝 HttpCookies
,將其傳遞給 客戶端配置區塊 內的 install
函式:
kotlin
val client = HttpClient(CIO) {
install(HttpCookies)
}
這足以使 Ktor 客戶端在請求之間保留 Cookie。您可以在這裡找到完整的範例:client-cookies。
HttpCookies
插件還允許您透過使用 ConstantCookiesStorage
將一組特定的 Cookie 新增到每個請求中。這在驗證伺服器回應的測試案例中可能很有用。以下範例展示了如何將指定的 Cookie 新增到特定網域的所有請求中:
kotlin
val client = HttpClient(CIO) {
install(HttpCookies) {
storage = ConstantCookiesStorage(Cookie(name = "user_name", value = "jetbrains", domain = "0.0.0.0"))
}
}
取得 Cookie
客戶端提供了 cookies
函式以取得用於指定 URL 的所有 Cookie:
kotlin
client.cookies("http://0.0.0.0:8080/")
自訂 Cookie 儲存
如果需要,您可以透過實作 CookiesStorage 介面來建立自訂 Cookie 儲存:
kotlin
val client = HttpClient(CIO) {
install(HttpCookies) {
storage = CustomCookiesStorage()
}
}
public class CustomCookiesStorage : CookiesStorage {
// ...
}
您可以將 AcceptAllCookiesStorage 作為參考。