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。
