Adding client dependencies
To use the Ktor HTTP client in your project, you need to configure repositories and add the following dependencies:
ktor-client-core
contains core Ktor client functionality.Engines are used to process network requests. Note that a specific platform may require a specific engine that processes network requests.
(Optional) Plugin dependency
Plugins are used to extend the client with a specific functionality.
Configure the repositories
Before adding Ktor dependencies, you need to configure the repositories for this project:
Production
Production releases of Ktor are available in the Maven central repository. You can declare this repository in your build script as follows:
repositories { mavenCentral() }repositories { mavenCentral() }Early Access Program (EAP)
To get access to the EAP versions of Ktor, you need to reference the Space repository:
repositories { maven { url = uri("https://maven.pkg.jetbrains.space/public/p/ktor/eap") } }repositories { maven { url "https://maven.pkg.jetbrains.space/public/p/ktor/eap" } }<repositories> <repository> <id>ktor-eap</id> <url>https://maven.pkg.jetbrains.space/public/p/ktor/eap</url> </repository> </repositories>Note that Ktor EAPs might require the Kotlin dev repository:
repositories { maven { url = uri("https://maven.pkg.jetbrains.space/kotlin/p/kotlin/dev") } }repositories { maven { url "https://maven.pkg.jetbrains.space/kotlin/p/kotlin/dev" } }<repositories> <repository> <id>ktor-eap</id> <url>https://maven.pkg.jetbrains.space/kotlin/p/kotlin/dev</url> </repository> </repositories>
Add dependencies
Client dependency
The main client functionality is available in the ktor-client-core
artifact. Depending on your build system, you can add it in the following way:
You can replace $ktor_version
with the required Ktor version, for example, 2.3.4
.
For a multiplatform project, you need to add the ktor-client-core
artifact to the commonMain
source set:
Engine dependency
An engine is responsible for processing network requests. There are different client engines available for various platforms, such as Apache, CIO, Android, iOS, and so on. For example, you can add a CIO
engine dependency as follows:
For a multiplatform project, you need to add a dependency for the required engine to a corresponding source set. For example, the code snippet below shows how to add the ktor-client-okhttp
dependency to the androidMain
source set:
For a full list of dependencies required for a specific engine, see Add an engine dependency.
Plugin dependency
Ktor lets you use additional client functionality (plugins) that is not available by default, for example, logging, authorization, or serialization. Some of them are provided in separate artifacts. You can learn which dependencies you need from a topic for a required plugin.