[kotlin] Ktor 클라이언트 라이브러리를 이용한 HTTP 요청 보내기
Kotlin의 Ktor 라이브러리는 손쉽게 HTTP 클라이언트를 작성하고 사용할 수 있는 간편한 방법을 제공합니다. 이 블로그 포스트에서는 Ktor의 클라이언트 라이브러리를 활용하여 HTTP 요청을 보내는 방법에 대해 알아보겠습니다.
1. Ktor 종속성 추가
먼저 프로젝트의 Gradle 또는 Maven 파일에 Ktor 클라이언트 종속성을 추가해야 합니다.
Gradle을 사용하는 경우:
dependencies {
implementation "io.ktor:ktor-client-core:$ktor_version"
implementation "io.ktor:ktor-client-cio:$ktor_version" // 원하는 클라이언트 엔진 선택
}
Maven을 사용하는 경우:
<dependencies>
<dependency>
<groupId>io.ktor</groupId>
<artifactId>ktor-client-core</artifactId>
<version>${ktor_version}</version>
</dependency>
<dependency>
<groupId>io.ktor</groupId>
<artifactId>ktor-client-cio</artifactId>
<version>${ktor_version}</version>
</dependency>
</dependencies>
2. HTTP 요청 보내기
다음은 Ktor 클라이언트를 사용하여 간단한 GET 요청을 보내는 예제 코드입니다.
import io.ktor.client.*
import io.ktor.client.request.*
suspend fun main() {
val client = HttpClient()
val response = client.get<String>("https://api.example.com/data")
println("Response: $response")
client.close()
}
위 예제에서는 HttpClient
를 생성하고, client.get
메서드를 사용하여 원격 서버에서 데이터를 가져오고 있습니다.
3. 요청 설정하기
Ktor 클라이언트는 다양한 옵션을 제공하여 요청을 설정할 수 있습니다. 예를 들어, 요청 헤더를 추가하거나 요청 본문을 설정하는 등의 작업이 가능합니다.
import io.ktor.client.request.*
import io.ktor.http.*
suspend fun main() {
val client = HttpClient()
val response = client.get<String> {
url("https://api.example.com/data")
header(HttpHeaders.Authorization, "Bearer token")
}
println("Response: $response")
client.close()
}
위 예제에서는 client.get
메서드의 람다 블록을 사용하여 URL과 요청 헤더를 설정하고 있습니다.
Ktor 클라이언트 라이브러리를 사용하여 HTTP 요청을 보내는 방법에 대해 간단히 살펴보았습니다. Ktor는 고성능이며 가독성이 뛰어난 방식으로 HTTP 클라이언트를 작성할 수 있도록 도와줍니다.
더 많은 정보는 Ktor 공식 문서를 참고하시기 바랍니다.