[kotlin] Ktor 클라이언트 라이브러리의 사용법

Ktor은 Kotlin으로 작성된 비동기 처리 및 네트워킹을 위한 오픈 소스 라이브러리입니다. Ktor을 사용하여 HTTP 클라이언트를 만들고 다양한 네트워크 요청을 처리할 수 있습니다. 이 블로그 포스트에서는 Ktor 클라이언트 라이브러리의 간단한 사용법을 알아보겠습니다.

목차

  1. Ktor 클라이언트 의존성 추가
  2. HTTP GET 요청 보내기
  3. HTTP POST 요청 보내기

1. Ktor 클라이언트 의존성 추가

먼저 Ktor 클라이언트를 사용하기 위해 Gradle 또는 Maven 프로젝트에 아래와 같이 의존성을 추가해야 합니다.

dependencies {
    implementation "io.ktor:ktor-client-core:$ktor_version"
    implementation "io.ktor:ktor-client-json:$ktor_version"
    implementation "io.ktor:ktor-client-jvm:$ktor_version"
}

위 코드에서 $ktor_version은 사용하고 있는 Ktor 버전에 대응하는 버전으로 변경해야 합니다.

2. HTTP GET 요청 보내기

Ktor 클라이언트를 사용하여 간단한 HTTP GET 요청을 보내는 방법은 다음과 같습니다.

import io.ktor.client.HttpClient
import io.ktor.client.request.get

suspend fun main() {
    val client = HttpClient()
    val response: String = client.get("https://api.example.com/data")
    println(response)
    client.close()
}

위 예제에서 HttpClient를 생성하고 get 함수를 사용하여 원하는 URL로 GET 요청을 보냅니다. 응답은 문자열로 반환되며, 필요에 따라 파싱하여 사용할 수 있습니다. 마지막에는 HttpClient를 닫아주어야 합니다.

3. HTTP POST 요청 보내기

Ktor 클라이언트를 사용하여 HTTP POST 요청을 보내는 방법은 다음과 같습니다.

import io.ktor.client.HttpClient
import io.ktor.client.request.post
import io.ktor.http.ContentType
import io.ktor.http.contentType

suspend fun main() {
    val client = HttpClient()
    val response: String = client.post("https://api.example.com/data") {
        contentType(ContentType.Application.Json)
        body = """{"key": "value"}"""
    }
    println(response)
    client.close()
}

위 예제에서 post 함수를 사용하여 URL과 함께 POST 요청을 보내고 있습니다. 또한 contentType으로 요청의 컨텐츠 타입을 설정하고 body에 전송할 데이터를 설정하였습니다.

결론

위에서 살펴본 예제를 통해 Ktor 클라이언트 라이브러리를 사용하여 간단한 HTTP GET 및 POST 요청을 어떻게 보낼 수 있는지 알아보았습니다. Ktor을 통해 네트워크 상호작용을 처리하는 데 있어 효율적이고 간편한 방법을 제공하므로, Kotlin 기반의 프로젝트에서 네트워킹을 구현할 때 유용하게 활용할 수 있습니다.

참고 자료

부가적으로 Ktor 공식 문서 및 GitHub 저장소를 참조하여 보다 자세한 정보를 얻을 수 있습니다.