Skip to content

멀티플랫폼

코드 예제: client-mpp

Ktor HTTP 클라이언트멀티플랫폼 프로젝트에서 사용할 수 있으며 다음 플랫폼을 지원합니다:

의존성 추가하기

프로젝트에서 Ktor HTTP 클라이언트를 사용하려면 최소 두 개의 의존성을 추가해야 합니다. 바로 클라이언트 의존성과 엔진 의존성입니다. 멀티플랫폼 프로젝트의 경우, 다음과 같이 이러한 의존성들을 추가해야 합니다:

  1. 공통 코드(common code)에서 Ktor 클라이언트를 사용하려면 build.gradle 또는 build.gradle.kts 파일의 commonMain 소스 세트에 ktor-client-core 의존성을 추가하세요:

    Kotlin
    Groovy
  2. 필요한 플랫폼에 대한 엔진 의존성을 해당 소스 세트에 추가하세요. Android의 경우, androidMain 소스 세트에 Android 엔진 의존성을 추가할 수 있습니다:

    Kotlin
    Groovy

    iOS의 경우, iosMainDarwin 엔진 의존성을 추가해야 합니다:

    Kotlin
    Groovy

    각 플랫폼에서 어떤 엔진이 지원되는지 알아보려면 엔진 의존성 추가하기를 참조하세요.

클라이언트 생성하기

멀티플랫폼 프로젝트에서 클라이언트를 생성하려면 프로젝트의 공통 코드에서 HttpClient 생성자를 호출하세요:

kotlin
import io.ktor.client.*

val client = HttpClient()

이 코드 스니펫에서 HttpClient 생성자는 엔진을 매개변수로 받지 않습니다. 클라이언트는 빌드 스크립트에 추가된 아티팩트에 따라 필요한 플랫폼에 맞는 엔진을 자동으로 선택합니다.

특정 플랫폼에 대해 엔진 구성을 조정해야 하는 경우, 해당 엔진 클래스를 HttpClient 생성자의 인자로 전달하고 engine 메서드를 사용하여 엔진을 구성하세요. 예를 들어:

kotlin
import io.ktor.client.*
import io.ktor.client.engine.android.*
import java.net.Proxy
import java.net.InetSocketAddress

val client = HttpClient(Android) {
    engine {
        // this: AndroidEngineConfig
        connectTimeout = 100_000
        socketTimeout = 100_000
        proxy = Proxy(Proxy.Type.HTTP, InetSocketAddress("localhost", 8080))
    }
}

모든 엔진 유형을 구성하는 방법은 클라이언트 엔진에서 확인할 수 있습니다.

코드 예제

mpp/client-mpp 프로젝트는 멀티플랫폼 애플리케이션에서 Ktor 클라이언트를 사용하는 방법을 보여줍니다. 이 애플리케이션은 Android, iOS, JavaScript, macosX64 플랫폼에서 작동합니다.