Два связанных вопроса, я использую Apache HTTP Client 4.x API. myHttpPost является экземпляром HttpPost, а myHttpClient является экземпляром HttpClient. Я пытаюсь отправить запрос с использованием обычной аутентификации. Итак, у меня есть HttpClient и я создаю HttpPost.
Способ "грубой силы" установки основного заголовка аутентификации заключается в том, чтобы установить его в заголовке HttpPost.
String encoding = Base64Encoder.encode("username" + ":" + "password");
myHttpPost.setHeader("Authorization", "Basic " + encoding);
Приведенный выше пример возник из другого вопроса переполнения стека (сейчас не могу найти ссылку на него). Относительно класса Base64Encoder - в каком пакете я найду его или откуда я его скачу?
Основной вопрос - я надеялся сделать базовую аутентификацию более эстетичным способом, используя приведенный ниже код:
myHttpClient.getCredentialsProvider().setCredentials(
new AuthScope(AuthScope.ANY_HOST, AuthScope.ANY_PORT, AuthScope.ANY_REALM, AuthPolicy.BASIC),
new UsernamePasswordCredentials("username", "password")
);
Но, похоже, это не работает. Итак, является ли первый приведенный выше пример правильным способом выполнения базовой аутентификации с помощью Apache HTTP Client 4.0? Или есть более чистый / простой способ.