Я проверяю класс org.apache.http.auth. Еще ссылка или пример, если кто-либо имеет?
Я не встречал этот пакет раньше, но в нем сказано, что это для клиентской HTTP-аутентификации, что я смог сделать на Android с помощью java. net
API, например:
Authenticator.setDefault(new Authenticator(){
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication("myuser","mypass".toCharArray());
}});
HttpURLConnection c = (HttpURLConnection) new URL(url).openConnection();
c.setUseCaches(false);
c.connect();
Очевидно, что ваш getPasswordAuthentication() должен сделать что-то более умное, чем возвращение константы.
Если вы пытаетесь сделать запрос с телом (например, POST
) с аутентификацией, остерегайтесь Android issue 4326. Там я связал предложенное исправление с платформой, но есть простое обходное решение, если вы хотите, чтобы Basic auth: не беспокоились с Authenticator, а делали следующее:
c.setRequestProperty("Authorization", "basic " +
Base64.encode("myuser:mypass".getBytes(), Base64.NO_WRAP));
Для своих проектов Android я использовал библиотеку Base64 отсюда:
Это очень обширная библиотека, и пока что я проблем с этим не было.