Kotlin:
Een HTTP-verzoek verzenden

Hoe:

Kotlin maakt HTTP-verzoeken eenvoudig. Hier is een basisvoorbeeld met khttp, een gebruiksvriendelijke bibliotheek:

import khttp.get

fun main() {
    val response = get("https://api.github.com/users/octocat/orgs")
    println(response.text)
}

Uitvoer:

[{"login":"octo-org","id":583231,"url":"https://api.github.com/orgs/octo-org", ...}]

Voor meer robuuste behoeften, hier is een fragment dat ktor, een Kotlin-framework, gebruikt om asynchroon gegevens op te halen:

import io.ktor.client.*
import io.ktor.client.engine.cio.*
import io.ktor.client.request.*

suspend fun main() {
    val client = HttpClient(CIO)
    val response: String = client.get("https://api.github.com/users/octocat/orgs")
    println(response)
    client.close()
}

Uitvoer vergelijkbaar met het eerste voorbeeld.

Diepere Duik

De khttp bibliotheek is een handig hulpmiddel, gemodelleerd naar Python’s requests. Het is geweldig voor snelle scripts, maar is niet actief onderhouden. ktor is een nieuwer, actief project van JetBrains, ontworpen met coroutines voor asynchrone operaties. Het is bedoeld voor schaalbare apps. Beide handelen HTTP-verzoeken af, maar dienen verschillende gebruikssituaties.

Historisch gezien werden HTTP-verzoeken in Kotlin gedaan met Java-bibliotheken zoals HttpURLConnection of Apache’s HttpClient. Deze zijn nog steeds geldig, maar zijn uitgebreider en missen de taalfeatures van Kotlin.

Wat implementatie betreft, vergeet niet om veelvoorkomende HTTP-fouten te behandelen en de responscode te lezen. Je zult ook try-catch willen gebruiken voor netwerkuitzonderingen en moet mogelijk werken met headers en queryparameters.

Zie Ook