Kotlin:
Webseite herunterladen

So geht’s:

Um eine Webseite herunterzuladen, nutzen wir HttpURLConnection oder Bibliotheken wie Ktor. Hier ein einfaches Beispiel mit HttpURLConnection:

import java.io.BufferedReader
import java.io.InputStreamReader
import java.net.HttpURLConnection
import java.net.URL

fun downloadWebPage(url: String): String {
    val urlObj = URL(url)
    val connection = urlObj.openConnection() as HttpURLConnection
    connection.requestMethod = "GET"

    val content = StringBuilder()
    BufferedReader(InputStreamReader(connection.inputStream)).use { reader ->
        var line: String?
        while (reader.readLine().also { line = it } != null) {
            content.append(line).append("\n")
        }
    }
    return content.toString()
}

fun main() {
    val webContent = downloadWebPage("http://example.com")
    println(webContent)
}

Dieses Script lädt den Inhalt von http://example.com und druckt ihn auf der Konsole.

Tiefgehend:

Früher nutzten Programmierer oft URLConnection. Mit HttpURLConnection kam eine spezifische Implementierung für HTTP hinzu. Aktuell gibt es viele Alternativen. Ktor und OkHttp sind moderne Kotlin-Bibliotheken zum Umgehen mit HTTP-Anfragen.

Probleme bei der Implementierung können Sicherheitsaspekte (z.B. SSL/TLS), Handhabung von Cookies und Redirects, sowie korrekte Fehlerbehandlung umfassen. Beachte auch Aspekte von Asynchronität, um die UI nicht zu blockieren.

Alternativen wie Ktor bieten hierbei mehr Funktionalität und Einfachheit:

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

suspend fun downloadWebPageKtor(url: String): String {
    val client = HttpClient(CIO)
    return client.get(url)
}

// Nutze diese Funktion innerhalb einer Coroutine oder eines suspend-Blocks

Siehe auch: