多平台
程式碼範例:client-mpp
Ktor HTTP 用戶端可用於多平台專案,並支援以下平台:
新增相依性
要在您的專案中使用 Ktor HTTP 用戶端,您至少需要新增兩個相依性:用戶端相依性與引擎相依性。對於多平台專案,您需要按照以下方式新增這些相依性:
要在通用程式碼中使用 Ktor 用戶端,請將
ktor-client-core相依性新增至build.gradle或build.gradle.kts檔案中的commonMain原始碼集: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。
