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를 참고 자료로 사용할 수 있습니다.