Skip to content

多平台

代码示例:client-mpp

Ktor HTTP 客户端可用于多平台项目,并支持以下平台:

添加依赖项

要在项目中使用 Ktor HTTP 客户端,您需要添加至少两个依赖项:客户端依赖项和引擎依赖项。对于多平台项目,您需要按如下方式添加这些依赖项:

  1. 要在公共代码中使用 Ktor 客户端,请在 build.gradlebuild.gradle.kts 文件的 commonMain 源集中添加对 ktor-client-core 的依赖项:

    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