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/