Skip to content

多平台

程式碼範例:client-mpp

Ktor HTTP 用戶端可用於多平台專案,並支援以下平台:

新增相依性

要在您的專案中使用 Ktor HTTP 用戶端,您至少需要新增兩個相依性:用戶端相依性與引擎相依性。對於多平台專案,您需要按照以下方式新增這些相依性:

  1. 要在通用程式碼中使用 Ktor 用戶端,請將 ktor-client-core 相依性新增至 build.gradlebuild.gradle.kts 檔案中的 commonMain 原始碼集:

    Kotlin
    Groovy
  2. 將所需平台的引擎相依性新增至對應的原始碼集。對於 Android,您可以將 Android 引擎相依性新增至 androidMain 原始碼集:

    Kotlin
    Groovy

    對於 iOS,您需要將 Darwin 引擎相依性新增至 iosMain

    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 用戶端。此應用程式可在以下平台執行:AndroidiOSJavaScriptmacosX64