Android httpclient - получение файла с упреждающей аутентификацией
У меня проблемы с получением кода HTML сайта с использованием этого примера кода.
Я должен использовать вышеуказанный, так как мне нужна превентивная аутентификация для моего приложения в Android.
Я думал, что решением может быть объект httpget, но я все еще получаю только ошибки:( cf HttpGet httpget = new HttpGet("/index.html");
Кто-нибудь знает, как получить содержимое файла, который указан в объекте httpget выше, используя пример кода ссылки. Это определенно называется, но сейчас я могу только получить код состояния и так далее...
Спасибо 4 помощь
4 ответа
Когда я занялся этим в прошлом году, я отказался от нативной упреждающей HTTP-аутентификации HttpClient и просто сам свернул заголовок.
Альтернатива 1: Пожалуйста, прочтите Базовую аутентификацию Http с Android, которая предлагает решение, основанное на официальных документах HttpClient 4. Я не проверял это сам, поэтому я был бы рад узнать, действительно ли это работает.
Изменить: я только что попробовал, и это работает как шарм.
Альтернатива 2: Вы также можете добавить HTTP-заголовок "Авторизация", как предложено @CommonsWare:
post.addHeader("Authorization", "Basic " + Base64.encode(username+":"+password));
В этом случае вам необходим кодировщик Base64 для кодирования строки, содержащей имя пользователя и пароль. Вы можете найти много реализаций в Интернете.
Для меня приведенный выше пример не работает на Android. Я должен был сделать следующее:
post.addHeader("Authorization", "Basic " + Base64.encodeToString((username+":"+password).getBytes(),Base64.NO_WRAP));
Спасибо, Янекс.
Я должен был сделать то же самое на Android.
post.addHeader("Authorization", "Basic " + Base64.encodeToString((username+":"+password).getBytes(),Base64.NO_WRAP));
ура