多平台
代码示例:client-mpp
Ktor HTTP 客户端可用于多平台项目,并支持以下平台:
添加依赖项
要在项目中使用 Ktor HTTP 客户端,您需要添加至少两个依赖项:客户端依赖项和引擎依赖项。对于多平台项目,您需要按如下方式添加这些依赖项:
要在公共代码中使用 Ktor 客户端,请在
build.gradle或build.gradle.kts文件的commonMain源集中添加对ktor-client-core的依赖项:KotlinGroovy为所需平台向相应的源集添加引擎依赖项。对于 Android,您可以将 Android 引擎依赖项添加到
androidMain源集中:KotlinGroovy对于 iOS,您需要将 Darwin 引擎依赖项添加到
iosMain:KotlinGroovy要了解每个平台支持哪些引擎,请参阅添加引擎依赖项。
创建客户端
要在多平台项目中创建客户端,请在项目的公共代码中调用 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。
