Ktor Client für Kotlin: Komplettguide mit Beispielen

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Ktor Client für Kotlin: Komplettguide mit Beispielen

Ktor Client ist eine leistungsstarke, schlanke und plattformübergreifende Bibliothek für HTTP-Anfragen in Kotlin. Entwickelt von JetBrains, ist sie Teil des Ktor-Ökosystems und bietet eine asynchrone, coroutine-basierte API für die Kommunikation mit Webservern. Im Gegensatz zu vielen anderen HTTP-Clients wurde Ktor Client von Grund auf für mehrere Plattformen konzipiert: JVM, Android, iOS, macOS, Linux, Windows und JavaScript (via Kotlin/JS). Das macht ihn zur idealen Wahl für die Entwicklung plattformübergreifender Anwendungen mit Kotlin Multiplatform (KMP).

Warum braucht man Ktor Client? In der modernen Entwicklung kommt kaum eine App ohne die Interaktion mit entfernten APIs aus. Ob Daten aus einem REST-Service laden, Formulare senden, Dateien hochladen oder mit WebSockets arbeiten – ein HTTP-Client ist ein grundlegendes Werkzeug. Ktor Client bietet nicht nur einfache GET- und POST-Requests, sondern ein ganzes Ökosystem an Plugins (oder "Engines"), mit denen Sie Serialisierung (JSON, XML, Protobuf), Komprimierung, Logging, Authentifizierung, Wiederholungsversuche und vieles mehr konfigurieren können. Sein größter Vorteil ist die vollständige Asynchronität auf Basis von Kotlin-Coroutinen, was hohe Leistung und sauberen Code ohne Callbacks ermöglicht.

Die Bibliothek zeichnet sich durch eine modulare Architektur aus. Sie binden nur die Komponenten ein, die Ihr Projekt tatsächlich benötigt: den Basis-Client, eine spezifische Engine (z. B. OkHttp für Android/JVM oder Darwin für iOS), einen Serialisierer und die erforderlichen Plugins. Das minimiert die Größe der finalen App und vermeidet Abhängigkeitskonflikte. Ktor Client wird aktiv weiterentwickelt, hat eine hervorragende Dokumentation und wird von der Kotlin-Community unterstützt.

Installation

Ktor Client wird über das Build-System Gradle (oder Maven) verteilt. Da es sich nicht um ein Python-Paket handelt, wird der Befehl pip install nicht verwendet. Nachfolgend finden Sie genaue Anweisungen zum Hinzufügen der Abhängigkeiten in Ihre build.gradle.kts-Datei.

Wichtig: Die Versionen der Bibliotheken müssen kompatibel sein. Es wird empfohlen, die neueste stabile Version aus dem offiziellen Maven Central Repository zu verwenden. Zum Zeitpunkt der Erstellung dieses Artikels ist die aktuelle Version 2.3.12.

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

// 1. Repository hinzufügen (normalerweise bereits vorhanden)
repositories {
    mavenCentral()
}

// 2. Abhängigkeiten im dependencies-Block hinzufügen
dependencies {
    // Basis-Client (erforderlich)
    implementation("io.ktor:ktor-client-core:2.3.12")

    // Engine - wählen Sie eine Option aus:
    // Für JVM (nutzt Java HttpClient oder OkHttp)
    implementation("io.ktor:ktor-client-okhttp:2.3.12") // Empfohlen für Android/JVM
    // implementation("io.ktor:ktor-client-java:2.3.12") // Alternative für JVM

    // Für iOS/macOS (nativ Darwin)
    // implementation("io.ktor:ktor-client-darwin:2.3.12")

    // Für JavaScript
    // implementation("io.ktor:ktor-client-js:2.3.12")

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

    // Plugins (optional, aber sehr nützlich):
    // JSON-Serialisierung (Gson oder Kotlinx Serialization)
    implementation("io.ktor:ktor-client-content-negotiation:2.3.12")
    implementation("io.ktor:ktor-serialization-gson:2.3.12")
    // oder implementation("io.ktor:ktor-serialization-kotlinx-json:2.3.12")

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

    // Für WebSockets
    // implementation("io.ktor:ktor-client-websockets:2.3.12")
}

Wenn Sie Maven verwenden, sehen die Abhängigkeiten ähnlich aus. Nach dem Hinzufügen der Abhängigkeiten synchronisieren Sie das Projekt (Sync Project with Gradle Files).

Schnellstart: Minimales funktionierendes Beispiel

Schreiben wir ein einfaches Programm, das einen GET-Request an eine öffentliche API sendet und die Antwort ausgibt.

Empfehlungen