Skip to content
Client Plugin

クッキー

コード例: client-cookies

Ktorクライアントでは、以下の方法でクッキーを手動で処理できます。

  • cookie関数を使用すると、特定のリクエストにクッキーを追加できます。
  • setCookie関数を使用すると、レスポンスで受信したSet-Cookieヘッダーの値をパースできます。

HttpCookiesプラグインはクッキーを自動的に処理し、呼び出し間でストレージに保持します。 デフォルトでは、インメモリストレージを使用しますが、CookiesStorageを使用して永続ストレージを実装することもできます。

依存関係を追加する

HttpCookiesktor-client-coreアーティファクトのみを必要とし、特定の依存関係は必要ありません。

HttpCookiesのインストールと設定

HttpCookiesをインストールするには、クライアント設定ブロック内でinstall関数に渡します。

kotlin
val client = HttpClient(CIO) {
    install(HttpCookies)
}

これは、Ktorクライアントがリクエスト間でクッキーを保持するのに十分です。完全な例はclient-cookiesで見つけることができます。

HttpCookiesプラグインは、ConstantCookiesStorageを使用することで、特定の一連のクッキーを各リクエストに追加することもできます。これは、サーバーレスポンスを検証するテストケースで役立つ場合があります。以下の例は、特定のドメインに対するすべてのリクエストに指定されたクッキーを追加する方法を示しています。

kotlin
val client = HttpClient(CIO) {
    install(HttpCookies) {
        storage = ConstantCookiesStorage(Cookie(name = "user_name", value = "jetbrains", domain = "0.0.0.0"))
    }
}

クッキーを取得する

クライアントは、指定されたURLのすべてのクッキーを取得するためにcookies関数を提供します。

kotlin
client.cookies("http://0.0.0.0:8080/")

カスタムクッキーストレージ

必要に応じて、CookiesStorageインターフェースを実装することで、カスタムクッキーストレージを作成できます。

kotlin
val client = HttpClient(CIO) {
    install(HttpCookies) {
        storage = CustomCookiesStorage()
    }
}

public class CustomCookiesStorage : CookiesStorage {
    // ...
}

AcceptAllCookiesStorageを参考にすることができます。