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ż:
- Kotlin Documentation - dokumentacja języka Kotlin.
- RFC 7617 - The ‘Basic’ HTTP Authentication Scheme - specyfikacja uwierzytelniania podstawowego.
- Mozilla Developer Network - HTTP authentication - przewodnik po uwierzytelnianiu HTTP.