Ktor Client Kotlin : guide complet avec exemples concrets

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Ktor Client pour Kotlin : guide complet avec exemples concrets

Ktor Client est une bibliothèque puissante, légère et multiplateforme pour effectuer des requêtes HTTP en Kotlin. Développée par JetBrains, elle fait partie de l'écosystème Ktor et propose une API asynchrone basée sur les coroutines pour interagir avec les serveurs web. Contrairement à de nombreux autres clients HTTP, Ktor Client a été conçu dès le départ pour fonctionner sur plusieurs plateformes : JVM, Android, iOS, macOS, Linux, Windows et JavaScript (via Kotlin/JS). Cela en fait un choix idéal pour le développement d'applications multiplateformes avec Kotlin Multiplatform (KMP).

Pourquoi utiliser Ktor Client ? Dans le développement moderne, presque aucune application ne peut se passer d'interagir avec des API distantes. Qu'il s'agisse de charger des données depuis un service REST, d'envoyer des formulaires, de télécharger des fichiers ou de travailler avec des WebSockets, un client HTTP est un outil fondamental. Ktor Client ne se limite pas aux requêtes GET et POST basiques : il offre tout un écosystème de plugins (ou "moteurs") qui permettent de configurer la sérialisation (JSON, XML, Protobuf), la compression, la journalisation, l'authentification, les tentatives de reconnexion, et bien plus encore. Son principal avantage est son asynchronisme total basé sur les coroutines Kotlin, garantissant des performances élevées et un code concis sans callbacks.

La bibliothèque se distingue par son architecture modulaire. Vous n'importez que les composants réellement nécessaires à votre projet : le client de base, le moteur spécifique (par exemple, OkHttp pour Android/JVM ou Darwin pour iOS), le sérialiseur et les plugins requis. Cela minimise la taille finale de l'application et évite les conflits de dépendances. Ktor Client est activement développé, dispose d'une excellente documentation et bénéficie du soutien de la communauté Kotlin.

Installation

Ktor Client est distribué via le système de build Gradle (ou Maven). Comme il ne s'agit pas d'un package Python, la commande pip install n'est pas utilisée. Voici les instructions précises pour ajouter les dépendances à votre fichier build.gradle.kts.

Important : Les versions des bibliothèques doivent être compatibles. Il est recommandé d'utiliser la dernière version stable du dépôt officiel Maven Central. Au moment de la rédaction de cet article, la version actuelle est 2.3.12.

// build.gradle.kts (Gradle Kotlin DSL)

// 1. Ajoutez le dépôt (généralement déjà présent)
repositories {
    mavenCentral()
}

// 2. Ajoutez les dépendances dans le bloc dependencies
dependencies {
    // Client de base (obligatoire)
    implementation("io.ktor:ktor-client-core:2.3.12")

    // Moteur (Engine) - choisissez une option :
    // Pour JVM (utilise Java HttpClient ou OkHttp)
    implementation("io.ktor:ktor-client-okhttp:2.3.12") // Recommandé pour Android/JVM
    // implementation("io.ktor:ktor-client-java:2.3.12") // Alternative pour JVM

    // Pour iOS/macOS (Darwin natif)
    // implementation("io.ktor:ktor-client-darwin:2.3.12")

    // Pour JavaScript
    // implementation("io.ktor:ktor-client-js:2.3.12")

    // Pour Windows/Linux (Curl)
    // implementation("io.ktor:ktor-client-curl:2.3.12")

    // Plugins (optionnels mais très utiles) :
    // Sérialisation JSON (Gson ou Kotlinx Serialization)
    implementation("io.ktor:ktor-client-content-negotiation:2.3.12")
    implementation("io.ktor:ktor-serialization-gson:2.3.12")
    // ou implementation("io.ktor:ktor-serialization-kotlinx-json:2.3.12")

    // Journalisation
    implementation("io.ktor:ktor-client-logging:2.3.12")

    // Pour les WebSockets
    // implementation("io.ktor:ktor-client-websockets:2.3.12")
}

Si vous utilisez Maven, les dépendances seront similaires. Après avoir ajouté les dépendances, synchronisez votre projet (Sync Project with Gradle Files).

Démarrage rapide : exemple minimal fonctionnel

Écrivons un programme simple qui effectue une requête GET vers une API publique et affiche le résultat.

Recommendations