Een HTTP-verzoek verzenden met basisauthenticatie

Kotlin:
Een HTTP-verzoek verzenden met basisauthenticatie

Hoe:

Kotlin handelt HTTP-verzoeken af met bibliotheken zoals ktor of okhttp. Laten we voor nu met okhttp doorgaan.

Pak eerst de bibliotheek in je build.gradle:

dependencies {
    implementation("com.squareup.okhttp3:okhttp:4.9.0")
}

Tijd om te coderen:

import okhttp3.Credentials
import okhttp3.OkHttpClient
import okhttp3.Request
import java.io.IOException

fun main() {
    val client = OkHttpClient()

    val username = "admin"
    val password = "password123"
    de credentials = Credentials.basic(username, password)

    val request = Request.Builder()
        .url("http://example.com/resource")
        .header("Authorization", credentials)
        .build()

    client.newCall(request).execute().use { response ->
        if (!response.isSuccessful) gooi IOException("Onverwachte code $response")

        println(response.body!!.string())
    }
}

Druk op uitvoeren en kijk naar je console. Je zou de beveiligde bron moeten zien uitkomen.

Diepe Duik

Vroeger was HTTP Basis Auth de standaard. Simpel: gewoon de gebruikersnaam:wachtwoord in base64 coderen en die in de kop zetten. Niet alleen veilig, vandaar dat HTTPS zich bij het feestje voegde.

Alternatieven? Zat. OAuth voor tokens, API-sleutels voor eenvoud, of digest-authenticatie voor een upgrade. Basisauthenticatie is goed om te beginnen of voor interne gereedschappen, maar niet voor het moderne, veiligheidsbewuste web.

Implementatiedetail: Vind het wiel niet opnieuw uit. Bibliotheken handelen codering en protocolnuances af. OkHttp gaat zelfs om met opnieuw proberen en verbindingen voor je. Onthoud, basisauthenticatie over HTTP is een no-go—gebruik altijd HTTPS om inloggegevens veilig in transit te houden.

Zie Ook