Skip to content
Client Plugin

クッキー

コード例: client-cookies

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

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

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

依存関係の追加

HttpCookiesにはktor-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を参考にしてください。