שליחת בקשת HTTP עם אימות בסיסי

Kotlin:
שליחת בקשת HTTP עם אימות בסיסי

איך לעשות:

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 basicAuth = "Basic ${Base64.getEncoder().encodeToString(credentials.toByteArray())}"

    urlConnection.requestMethod = "GET"
    urlConnection.setRequestProperty("Authorization", basicAuth)

    val responseCode = urlConnection.responseCode
    println("Response Code: $responseCode")
    urlConnection.inputStream.bufferedReader().use { it.lines().forEach { line -> println(line) } }
}

// דוגמא לשימוש:
val demoUrl = "http://example.com/api/data"
val username = "user"
val password = "password123"
sendGetRequestWithBasicAuth(demoUrl, username, password)

תוצאה:

Response Code: 200
{"message":"Data retrieved successfully"}

עיון מעמיק:

אימות בסיסי ב-HTTP משמש כבר שנים רבות. בטרם הצפנת SSL ו-TLS הפך לשכיח, האימות היה חשוף ופגיע לחטיפת חיבורים. אלטרנטיבות מודרניות כוללות OAuth ו-API keys שמספקות שכבות אבטחה נוספות. כאשר שולחים בקשה עם אימות בסיסי ב-Kotlin, חשוב לשים לב לכך שסיסמאות אינן חושפות בקוד ולהשתמש באימות בטוח כמו HTTPS כדי למנוע האזנות סתר.

ראה גם: