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作為參考。
