Multiplatform Http Client

预计阅读时间:3分钟

HTTP客户端使用Kotlin 1.2中引入的实验性多平台支持来支持多个平台.

目前,支持的平台是JVM,Android,iOS,Js和本机.

Common

对于多平台项目 ,对多个平台之间的示例共享代码,我们可以创建一个通用模块. 该通用模块只能访问所有目标上可用的API. Ktor HTTP客户端公开了可用于此类项目的通用模块:

dependencies {
    implementation("io.ktor:ktor-client-core:$ktor_version")
    // ...
}

JVM

要在JVM上使用Ktor,您必须在build.gradlebuild.gradle.kts )中包括一个受支持的JVM引擎 .

Android

要使用Android引擎,您必须在build.gradlebuild.gradle.kts )中添加依赖build.gradle.kts

dependencies {
    implementation("io.ktor:ktor-client-android:$ktor_version")
    // ...
}

然后,您可以使用Android Studio或Gradle构建项目.

iOS

对于iOS,您必须使用Kotlin / Native ,并且类似于android,您必须将此工件作为dependencies块的一部分.

dependencies {
    implementation("io.ktor:ktor-client-ios:$ktor_version")
    // ...
}

在iOS上,我们通常创建一个.framework ,而应用程序项目是一个用Swift或Objective-C编写的包含该框架的常规XCode项目. 因此,您首先必须使用Kotlin / Native公开的Gradle任务构建框架,然后打开XCode项目.

Javascript

对于浏览器或node-js应用程序,必须使用Kotlin / Js .

dependencies {
    implementation("io.ktor:ktor-client-js:$ktor_version")
    // ...
}

Posix compatible desktops: MacOS, Linux, Windows

作为JVM兼容引擎的替代方案,您还可以将ktor客户端与带有curl后端的Kotlin / Native一起使用.

dependencies {
    implementation("io.ktor:ktor-client-curl:$ktor_version")
    // ...
}

Samples

在ktor-samples存储库mpp / client-mpp中有一个使用公共客户端的完整示例.

您可以将该项目用作参考. 该项目还展示了一些实验性Gradle任务,可直接从Gradle构建,安装和运行Android和iOS应用程序.

Android tasks

  • :client-mpp-android:emulatorList列出所有可用的模拟器
  • :client-mpp-android:emulatorStart启动仿真器(这将暂时阻止Gradle,因此最好在单独的终端中执行)
  • :client-mpp-android:emulatorInstall将应用程序安装在模拟器中
  • :client-mpp-android:emulatorRun在模拟器内部执行应用程序

iOS tasks

  • :client-mpp-ios:startSimulator启动模拟器
  • :client-mpp-ios:shutdownSimulator关闭模拟器
  • :client-mpp-ios:buildXcode构建使用来自Kotlin / Native的.framework的XCode项目
  • :client-mpp-ios:installSimulator将应用程序安装在模拟器中
  • :client-mpp-ios:launchSimulator在模拟器内部执行应用程序

由于这些任务是实验性的,因此您的特定设置可能会失败. 请让我们知道,以便我们进行改进. 或者帮助我们完成iOS任务Android 任务 .

by  ICOPY.SITE