Skip to content

添加客户端依赖项

要在你的项目中集成 Ktor HTTP 客户端,你需要配置仓库并添加以下依赖项:

在添加 Ktor 依赖项之前,你需要为该项目配置仓库:

  • 生产版本

    Ktor 的生产版本在 Maven 中央仓库中可用。 你可以在构建脚本中按如下方式声明此仓库:

    Kotlin
    Groovy

    NOTE

    你无需在 pom.xml 文件中添加 Maven 中央仓库,因为你的项目会从 Super POM 继承中央仓库。

  • 抢先体验计划 (EAP)

    要获取 Ktor 的 EAP 版本,你需要引用 Space 仓库

    Kotlin
    Groovy
    XML

    请注意,Ktor EAP 可能需要 Kotlin 开发仓库

    Kotlin
    Groovy
    XML

添加依赖项

对于不同的平台,Ktor 提供带 -jvm-js 等后缀的平台特有的构件,例如 ktor-client-core-jvm。请注意,Gradle 会自动解析适用于给定平台的构件,而 Maven 不支持此能力。这意味着对于 Maven,你需要手动添加平台特有的后缀。

客户端依赖项

主要的客户端功能在 ktor-client-core 构件中可用。根据你的构建系统,你可以按以下方式添加它:

Kotlin
Groovy
XML

你可以将 $ktor_version 替换为所需的 Ktor 版本,例如 3.2.3

多平台

对于多平台项目,你可以在 gradle/libs.versions.toml 文件中定义 Ktor 版本和 ktor-client-core 构件:

kotlin
[versions]
ktor = "3.2.3"
[libraries]
kotlin-test = { module = "org.jetbrains.kotlin:kotlin-test", version.ref = "kotlin" }
ktor-client-okhttp = { module = "io.ktor:ktor-client-okhttp", version.ref = "ktor" }

然后,将 ktor-client-core 作为依赖项添加到 commonMain 源代码集:

kotlin
sourceSets {
    commonMain.dependencies {
        implementation(libs.ktor.client.core)
    }
}

引擎依赖项

引擎负责处理网络请求。针对各种平台,有不同的客户端引擎可用,例如 Apache、CIO、Android、iOS 等。例如,你可以按如下方式添加 CIO 引擎依赖项:

Kotlin
Groovy
XML

多平台

对于多平台项目,你需要为所需的引擎向相应的源代码集添加依赖项。

例如,要为 Android 添加 OkHttp 引擎依赖项,你可以首先在 gradle/libs.versions.toml 文件中定义 Ktor 版本和 ktor-client-okhttp 构件:

kotlin
[versions]
ktor = "3.2.3"
[libraries]
kotlin-test = { module = "org.jetbrains.kotlin:kotlin-test", version.ref = "kotlin" }
ktor-client-darwin = { module = "io.ktor:ktor-client-darwin", version.ref = "ktor" }

然后,将 ktor-client-okhttp 作为依赖项添加到 androidMain 源代码集:

kotlin
sourceSets {
    androidMain.dependencies {
        implementation(libs.ktor.client.okhttp)
    }
}

有关特定引擎所需依赖项的完整列表,请参见添加引擎依赖项

日志记录依赖项

JVM 上,Ktor 使用 Java 简单日志门面 (SLF4J) 作为日志记录的抽象层。SLF4J 将日志 API 与底层日志实现解耦, 使你能够集成最适合你应用程序需求的日志框架。 常见的选择包括 LogbackLog4j。如果没有提供框架,SLF4J 将默认为空操作 (NOP) 实现, 这本质上禁用了日志记录。

要启用日志记录,请包含带有所需 SLF4J 实现的构件,例如 Logback

Kotlin
Groovy
XML

有关 Ktor 客户端中日志记录的更多信息,请参见 Ktor 客户端中的日志记录

插件依赖项

Ktor 允许你使用默认不提供的额外客户端功能(插件),例如授权和序列化。其中一些插件以独立的构件提供。你可以从所需插件的主题中了解你需要哪些依赖项。

对于多平台项目,插件依赖项应添加到 commonMain 源代码集。请注意,某些插件可能对特定平台有限制

确保 Ktor 版本一致性

使用 Ktor BOM 依赖项

Ktor BOM 允许你确保所有 Ktor 模块使用相同的一致版本,而无需为每个依赖项单独指定版本。

要添加 Ktor BOM 依赖项,请在你的构建脚本中按如下方式声明它:

Kotlin
Groovy
XML

你还可以通过使用已发布的版本目录来集中管理 Ktor 依赖项声明。 这种方法提供以下好处:

  • 消除了手动在你自己的目录中声明 Ktor 版本的需要。
  • 在单个命名空间下公开每个 Ktor 模块。

要声明该目录,请在 settings.gradle.kts 文件中创建一个你所选名称的版本目录:

kotlin

然后,你可以在模块的 build.gradle.kts 文件中通过引用目录名称来添加依赖项:

kotlin