Wysyłanie zapytania http z podstawową autoryzacją

Kotlin:
Wysyłanie zapytania http z podstawową autoryzacją

Jak to zrobić:

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

fun sendGetRequestWithBasicAuth(url: String, username: String, password: String) {
    val urlConnection = URL(url).openConnection() as HttpURLConnection
    val credentials = "$username:$password"
    val encodedCredentials = Base64.getEncoder().encodeToString(credentials.toByteArray())
    urlConnection.requestProperty["Authorization"] = "Basic $encodedCredentials"

    try {
        val responseCode = urlConnection.responseCode
        if (responseCode == HttpURLConnection.HTTP_OK) {
            val response = urlConnection.inputStream.bufferedReader().readText()
            println("Response: $response")
        } else {
            println("GET request not worked. Response code: $responseCode")
        }
    } finally {
        urlConnection.disconnect()
    }
}

// Użycie funkcji
val testUrl = "https://example.com/api/data"
val username = "myUser"
val password = "myPass123"
sendGetRequestWithBasicAuth(testUrl, username, password)

Deep Dive:

Uwierzytelnianie podstawowe (Basic Authentication) to standardowy sposób na przekazanie nazwy użytkownika i hasła w nagłówkach HTTP. Pochodzi z początków internetu, ale jest nadal popularne ze względu na swoją prostotę. Alternatywne metody uwierzytelniania obejmują OAuth i tokeny API, które oferują lepszą bezpieczeństwo, ale są bardziej skomplikowane w obsłudze.

W implementacji Kotlin używamy klasy HttpURLConnection, do której dołączamy zakodowane w Base64 dane uwierzytelniające. Pamiętajmy, że taki sposób przesyłania wrażliwych informacji jest bezpieczny tylko przy użyciu szyfrowanego połączenia (HTTPS), inaczej dane mogą być przechwycone w transmisji.

Zobacz też: