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