添加客户端依赖项
要在你的项目中集成 Ktor HTTP 客户端,你需要配置仓库并添加以下依赖项:
ktor-client-core
包含核心 Ktor 客户端功能。引擎用于处理网络请求。 请注意,特定平台可能需要一个特定的引擎来处理网络请求。
(可选)日志记录依赖项
提供日志框架以启用结构化和灵活的日志记录功能。
(可选)插件依赖项
插件用于通过特定功能扩展客户端。
在添加 Ktor 依赖项之前,你需要为该项目配置仓库:
生产版本
Ktor 的生产版本在 Maven 中央仓库中可用。 你可以在构建脚本中按如下方式声明此仓库:
抢先体验计划 (EAP)
要获取 Ktor 的 EAP 版本,你需要引用 Space 仓库:
KotlinGroovyXML请注意,Ktor EAP 可能需要 Kotlin 开发仓库:
KotlinGroovyXML
添加依赖项
对于不同的平台,Ktor 提供带
-jvm
或-js
等后缀的平台特有的构件,例如ktor-client-core-jvm
。请注意,Gradle 会自动解析适用于给定平台的构件,而 Maven 不支持此能力。这意味着对于 Maven,你需要手动添加平台特有的后缀。
客户端依赖项
主要的客户端功能在 ktor-client-core
构件中可用。根据你的构建系统,你可以按以下方式添加它:
你可以将 $ktor_version
替换为所需的 Ktor 版本,例如 3.2.3
。
多平台
对于多平台项目,你可以在 gradle/libs.versions.toml
文件中定义 Ktor 版本和 ktor-client-core
构件:
[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
源代码集:
sourceSets {
commonMain.dependencies {
implementation(libs.ktor.client.core)
}
}
引擎依赖项
引擎负责处理网络请求。针对各种平台,有不同的客户端引擎可用,例如 Apache、CIO、Android、iOS 等。例如,你可以按如下方式添加 CIO
引擎依赖项:
多平台
对于多平台项目,你需要为所需的引擎向相应的源代码集添加依赖项。
例如,要为 Android 添加 OkHttp
引擎依赖项,你可以首先在 gradle/libs.versions.toml
文件中定义 Ktor 版本和 ktor-client-okhttp
构件:
[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
源代码集:
sourceSets {
androidMain.dependencies {
implementation(libs.ktor.client.okhttp)
}
}
有关特定引擎所需依赖项的完整列表,请参见添加引擎依赖项。
日志记录依赖项
在 JVM 上,Ktor 使用 Java 简单日志门面 (SLF4J) 作为日志记录的抽象层。SLF4J 将日志 API 与底层日志实现解耦, 使你能够集成最适合你应用程序需求的日志框架。 常见的选择包括 Logback 或 Log4j。如果没有提供框架,SLF4J 将默认为空操作 (NOP) 实现, 这本质上禁用了日志记录。
要启用日志记录,请包含带有所需 SLF4J 实现的构件,例如 Logback:
有关 Ktor 客户端中日志记录的更多信息,请参见 Ktor 客户端中的日志记录。
插件依赖项
Ktor 允许你使用默认不提供的额外客户端功能(插件),例如授权和序列化。其中一些插件以独立的构件提供。你可以从所需插件的主题中了解你需要哪些依赖项。
对于多平台项目,插件依赖项应添加到
commonMain
源代码集。请注意,某些插件可能对特定平台有限制。
确保 Ktor 版本一致性
使用 Ktor BOM 依赖项
Ktor BOM 允许你确保所有 Ktor 模块使用相同的一致版本,而无需为每个依赖项单独指定版本。
要添加 Ktor BOM 依赖项,请在你的构建脚本中按如下方式声明它:
你还可以通过使用已发布的版本目录来集中管理 Ktor 依赖项声明。 这种方法提供以下好处:
- 消除了手动在你自己的目录中声明 Ktor 版本的需要。
- 在单个命名空间下公开每个 Ktor 模块。
要声明该目录,请在
然后,你可以在模块的