Kotlin:
Надсилання HTTP-запиту з базовою автентифікацією
Як це зробити:
import java.net.URL
import java.util.Base64
import javax.net.ssl.HttpsURLConnection
fun sendBasicAuthRequest(username: String, password: String, endpoint: String) {
val url = URL(endpoint)
val connection = url.openConnection() as HttpsURLConnection
val credentials = "$username:$password"
val encodedCredentials = Base64.getEncoder().encodeToString(credentials.toByteArray(Charsets.UTF_8))
connection.setRequestProperty("Authorization", "Basic $encodedCredentials")
connection.apply {
requestMethod = "GET"
doInput = true
doOutput = true
}
println("Response Code: ${connection.responseCode}")
println("Response Message: ${connection.responseMessage}")
}
fun main() {
val username = "user"
val password = "pass"
val endpoint = "https://yourapi.com/data"
sendBasicAuthRequest(username, password, endpoint)
}
Виходи:
Response Code: 200
Response Message: OK
Поглиблено:
Базова аутентифікація з’явилася ще на світанку вебу і досі користується популярністю через свою простоту. Хоча зараз існує більш безпечні методи, наприклад OAuth 2.0, базова аутентифікація залишається значущою для швидких або внутрішніх рішень. Значення "Authorization"
header кодується у Base64 і включає username
та password
, розділені двокрапкою. Варто пам’ятати, що Base64 не є шифруванням і його легко декодувати; тому використання HTTPS є важливим для забезпечення безпеки. У Kotlin для HTTP-запитів з автентифікацією можна користуватися різними бібліотеками, але базовий приклад використовує інтегровані Java класи.