Client Plugin
クッキー
コード例: client-cookies
Ktorクライアントでは、以下の方法でクッキーを手動で処理できます。
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を参考にすることができます。