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