Android httpclient - получение файла с упреждающей аутентификацией - PullRequest
7 голосов
/ 02 июня 2010

У меня проблемы с получением HTML-кода сайта с использованием этого примера кода.

http://svn.apache.org/repos/asf/httpcomponents/httpclient/branches/4.0.x/httpclient/src/examples/org/apache/http/examples/client/ClientPreemptiveBasicAuthentication.java

Я должен использовать вышеупомянутую, так как мне нужна превентивная аутентификация для моего приложения в Android.

Я думал, что решением может быть объект httpget, но я все еще получаю только ошибки :( c.f. HttpGet httpget = new HttpGet ("/ index.html");

Кто-нибудь имеет представление о том, как получить содержимое файла, которое указано в приведенном выше объекте httpget с использованием примера кода ссылки. Это определенно называется, но сейчас я могу только получить код состояния и так далее ...

Спасибо 4 помощь

Ответы [ 4 ]

13 голосов
/ 02 июня 2010

Когда я занялся этим в прошлом году, я разочаровался в собственной приоритетной HTTP-аутентификации HttpClient и просто сам свернул заголовок .

11 голосов
/ 04 июля 2010

Альтернатива 1 : прочитайте Базовая аутентификация Http с Android , которая предлагает решение на основе официальных документов HttpClient 4 . Я не проверял это сам, поэтому буду рад узнать, действительно ли это работает.

Редактировать : Я только что попробовал, и это работает как шарм.

Альтернатива 2 : Вы также можете добавить HTTP-заголовок «Авторизация», предложенный @CommonsWare:

post.addHeader("Authorization", "Basic " + Base64.encode(username+":"+password));

В этом случае вам необходим кодировщик Base64 для кодирования строки, содержащей имя пользователя и пароль. Вы можете найти много реализаций в Интернете.

9 голосов
/ 17 мая 2012

Для меня приведенный выше пример не работает на Android. Я должен был сделать следующее:

post.addHeader("Authorization", "Basic " + Base64.encodeToString((username+":"+password).getBytes(),Base64.NO_WRAP));
7 голосов
/ 07 июня 2012

Спасибо, Янекс.

Я должен был сделать то же самое на Android.

post.addHeader("Authorization", "Basic " + Base64.encodeToString((username+":"+password).getBytes(),Base64.NO_WRAP));

ура

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...