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

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

Закрытые 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; public class Main { public static void main(String[] args) throws Exception { HttpClient client = HttpClient.newBuilder().build(); HttpRequest request = HttpRequest.newBuilder() .uri(URI.create("https://httpbin.org/bearer")) .header("Authorization", "Bearer secret") .GET() .build(); HttpResponse<String> response = client.send( request, HttpResponse.BodyHandlers.ofString(), ); System.out.println(response.statusCode()); } }

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

import java.net.URI; import java.net.http.HttpClient; import java.net.http.HttpRequest; import java.net.http.HttpResponse; public class Main { public static void main(String[] args) throws Exception { HttpClient client = HttpClient.newBuilder().build(); HttpRequest request = HttpRequest.newBuilder() .uri(URI.create("https://httpbin.org/bearer")) .GET() .build(); HttpResponse<String> response = client.send( request, HttpResponse.BodyHandlers.ofString(), ); System.out.println(response.statusCode()); } }
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить