我正在尝试从我的Android应用程序调用REST服务(需要身份验证)。我已经成功地使用不需要身份验证的URL,但我不确定用于身份验证的正确方法。我目前正在使用Sax Parser消耗xml并像这样调用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
来利用默认会话cookie的HTTP基本身份验证,但我不明白应该如何与Sax Parser一起完成。
这里的主要目标是我想调用一个需要经过身份验证的用户名的URL,并且如果用户名通过密码验证,则该URL返回XML。
答案 0 :(得分:0)
我相信我在ChandlerQE完成了你所要求的。有关run()
方法,请参阅ChandlerQE.java。代码并不漂亮,但基本上我使用httpclient发布和获取,并使用SAXParser解析返回的XML。