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 dev 仓库

    Kotlin
    Groovy
    XML

添加依赖项

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

客户端依赖项

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

Kotlin
Groovy
XML

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

多平台

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

kotlin
[versions]
ktor = "3.4.0"

[libraries]
ktor-client-core = { module = "io.ktor:ktor-client-core", 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.4.0"

[libraries]
ktor-client-okhttp = { module = "io.ktor:ktor-client-okhttp", version.ref = "ktor" }

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

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

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

日志依赖项

在 JVM 上,Ktor 使用 Simple Logging Facade for Java (SLF4J) 作为日志记录的抽象层。SLF4J 将日志记录 API 与底层的日志记录实现解耦, 允许您集成最适合应用程序要求的日志框架。 常见的选择包括 LogbackLog4j。如果不提供框架,SLF4J 将默认使用无操作 (NOP) 实现, 这实际上会禁用日志记录。

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

Kotlin
Groovy
XML

有关 Ktor 中日志记录的更多信息,请参阅 Ktor Client 中的日志记录

插件依赖项

Ktor 允许您使用默认情况下不可用的附加客户端功能(插件),例如授权和序列化。其中一些插件在单独的工件中提供。您可以从所需插件的主题中了解所需的依赖项。

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

确保 Ktor 版本一致性

使用 Ktor BOM 依赖项

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

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

Kotlin
Groovy
XML

您还可以通过使用发布的版本目录来集中化 Ktor 依赖项声明。 这种方法具有以下好处:

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

要声明目录,请在 settings.gradle.kts 中创建具有您选择名称的版本目录:

kotlin

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

kotlin