Надсилання HTTP-запиту з базовою автентифікацією

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 класи.

Дивіться також: