Kotlin:
Skicka en http-förfrågan
Att göra:
Kotlin använder bibliotek som khttp
eller Fuel
för HTTP-begäran, men här fokuserar vi på Ktor, ett Kotlin-eget sätt:
import io.ktor.client.*
import io.ktor.client.request.*
import io.ktor.client.statement.*
suspend fun getWebContent(url: String): String {
val client = HttpClient()
val response: HttpResponse = client.get(url)
val content = response.readText()
client.close()
return content
}
// Användning:
fun main() {
val content = getWebContent("https://example.com")
println(content)
}
Du borde se svaret från https://example.com
i konsolen.
Djupdykning:
Under tidigare år, använder vi Java-bibliotek som HttpURLConnection
eller Apache HttpClient
i Kotlin för HTTP-requests. Ktor är dock ett högnivå, asynkront, och korutin-baserat Kotlin ramarverk som är tänkt för att förenkla nätverksoperationer, som HTTP-begäran, på ett idiomatiskt Kotlin-sätt.
Alternativ inkluderar:
okhttp
: Ett tredjepartsbibliotek som är mer konfigurativt.retrofit
: Ett annat populärt bibliotek som också kan generera Kotlin-korutiner.
Ktor använder sig av korutiner för att hantera asynkrona anrop vilket gör koden enklare och mer lättläst. Detta är viktigt vid hög trafik eller krav på snabba svarstider.
Se även:
- Ktor officiella hemsida: https://ktor.io/
- Ktor klientdokumentation: https://ktor.io/docs/client.html
okhttp
: https://square.github.io/okhttp/retrofit
: https://square.github.io/retrofit/