Я пытаюсь вызвать службу 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, если имя пользователя аутентифицируется с помощью пароля.