Как использовать XML из веб-сервиса, используя аутентификацию? - PullRequest
1 голос
/ 08 февраля 2010

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

1 Ответ

0 голосов
/ 09 февраля 2010

Я считаю, что я сделал то, о чем вы просите в ChandlerQE . См. ChandlerQE.java для метода run(). Код не очень красивый, но в основном я использую httpclient для отправки и получения и анализа возвращаемого XML с помощью SAXParser.

...