Я пытаюсь вызвать службу REST (которая требует аутентификации) из моего приложения для Android. Я делаю это успешно уже с URL, который не требует аутентификации, но я не уверен в правильном подходе для аутентификации. В настоящее время я использую xml, используя Sax Parser и вызываю url.openStream()
, например:
QuestionHandler myQuestionHandler = new QuestionHandler();
XMLReader xr = SAXParserFactory.newInstance().newSAXParser().getXMLReader();
xr.setContentHandler(myQuestionHandler);
xr.parse(new InputSource(new URL('MyUnAuthenticatedURL').openStream()));
handler.post(new Runnable() {
public void run() {
recentQuestions = myQuestionHandler.getResultList();
loadQuestions = false;
fillData();
}
});
Я прочитал, что должен использовать org.apache.http.impl.client.DefaultHttpClient
, чтобы воспользоваться преимуществами базовой HTTP-аутентификации с использованием файлов cookie сеанса по умолчанию, но я не понимаю, как это следует делать в сочетании с анализатором Sax.
Основная цель здесь заключается в том, чтобы я хотел вызвать URL-адрес, требующий аутентифицированного имени пользователя, и получить этот URL-адрес, возвращающий XML, если имя пользователя аутентифицировано с помощью пароля.