Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗ktSpApTkn 266 of 299 menu
◀ ▶

Ключ доступа в Kotlin

Закрытые API проверяют ключ в заголовке "Authorization". Форма "Bearer" с пробелом и секретом - распространенный вариант. Клиент JDK добавляет пару имя-значение в построитель запроса так же, как "Content-Type".

Эндпоинт "/bearer" на httpbin подтверждает токен "secret". Достаточно напечатать код состояния после обмена:

import java.net.URI import java.net.http.HttpClient import java.net.http.HttpRequest import java.net.http.HttpResponse fun main() { val client = HttpClient.newBuilder().build() val request = HttpRequest.newBuilder() .uri(URI.create("https://httpbin.org/bearer")) .header("Authorization", "Bearer secret") .GET() .build() val response = client.send( request, HttpResponse.BodyHandlers.ofString(), ) println(response.statusCode()) }

Без заголовка тот же адрес отвечает отказом. Код 401 сигнализирует, что ключ не передан или не принят:

import java.net.URI import java.net.http.HttpClient import java.net.http.HttpRequest import java.net.http.HttpResponse fun main() { val client = HttpClient.newBuilder().build() val request = HttpRequest.newBuilder() .uri(URI.create("https://httpbin.org/bearer")) .GET() .build() val response = client.send( request, HttpResponse.BodyHandlers.ofString(), ) println(response.statusCode()) }
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить