쿠키(Cookies
[//]: # (title: 쿠키(Cookies))
코드 예제: client-cookies
Ktor 클라이언트는 다음과 같은 방식으로 쿠키를 수동으로 처리할 수 있도록 지원합니다:
HttpCookies 플러그인은 쿠키를 자동으로 처리하고 스토리지에 저장하여 호출 간에 이를 유지합니다. 기본적으로는 인메모리(in-memory) 스토리지를 사용하지만, CookiesStorage를 사용하여 영구 저장소(persistent storage)를 구현할 수도 있습니다.
종속성 추가
HttpCookies는 ktor-client-core 아티팩트만 필요하며 다른 특정 종속성은 필요하지 않습니다.
HttpCookies 설치 및 구성
HttpCookies를 설치하려면 클라이언트 구성 블록 내부의 install 함수에 전달하세요:
val client = HttpClient(CIO) {
install(HttpCookies)
}이것만으로도 Ktor 클라이언트가 요청 간에 쿠키를 유지하도록 설정하기에 충분합니다. 전체 예제는 여기에서 확인할 수 있습니다: client-cookies.
또한 HttpCookies 플러그인에서는 ConstantCookiesStorage를 사용하여 각 요청에 특정 쿠키 세트를 추가할 수도 있습니다. 이는 서버 응답을 검증하는 테스트 케이스에서 유용할 수 있습니다. 아래 예제는 특정 도메인에 대한 모든 요청에 지정된 쿠키를 추가하는 방법을 보여줍니다:
val client = HttpClient(CIO) {
install(HttpCookies) {
storage = ConstantCookiesStorage(Cookie(name = "user_name", value = "jetbrains", domain = "0.0.0.0"))
}
}쿠키 가져오기
클라이언트는 지정된 URL에 대한 모든 쿠키를 가져올 수 있는 cookies 함수를 제공합니다:
client.cookies("http://0.0.0.0:8080/")사용자 정의 쿠키 스토리지
필요한 경우 CookiesStorage 인터페이스를 구현하여 사용자 정의 쿠키 스토리지를 만들 수 있습니다:
val client = HttpClient(CIO) {
install(HttpCookies) {
storage = CustomCookiesStorage()
}
}
public class CustomCookiesStorage : CookiesStorage {
// ...
}AcceptAllCookiesStorage를 참고 자료로 활용할 수 있습니다.
