HTTP-pyynnön lähettäminen perusautentikoinnilla

Kotlin:
HTTP-pyynnön lähettäminen perusautentikoinnilla

How to - Kuinka tehdä:

import java.net.HttpURLConnection
import java.net.URL
import java.util.Base64

fun sendGetRequestWithBasicAuth(url: String, username: String, password: String) {
    val connection = URL(url).openConnection() as HttpURLConnection

    val auth = Base64.getEncoder().encodeToString("$username:$password".toByteArray())
    connection.requestProperty["Authorization"] = "Basic $auth"

    connection.connect()

    val responseCode = connection.responseCode
    val responseMessage = if (responseCode == HttpURLConnection.HTTP_OK) {
        connection.inputStream.bufferedReader().readText()
    } else {
        "Error $responseCode: ${connection.responseMessage}"
    }

    println("Response: $responseMessage")
}

fun main() {
    val url = "http://example.com/api/data"
    val username = "user123"
    val password = "pass456"

    sendGetRequestWithBasicAuth(url, username, password)
}

Sample output:

Response: { "data": "Confidential data..." }

Deep Dive - Syväsukellus:

Perusautentikointi on yksinkertainen HTTP:n autentikointimekanismi, joka kehitettiin internetin alkuaikoina. Se ei ole erityisen turvallinen, sillä tunnistetiedot lähetetään BASE64-koodattuna, mikä on helposti purettavissa. Siksi suositellaan käyttämään vahvempia menetelmiä, kuten OAuth 2.0, kun mahdollista. Javassa HttpURLConnection on yksi tapa lähettää HTTP-pyynnöt, mutta Kotlinissa voi myös käyttää kotlinx.coroutines ja okhttp kolmannen osapuolen kirjastoja, jotka tukevat asynkronista suoritusta ja ovat kohtuullisen helppokäyttöisiä.

See Also - Katso Myös: