我正在尝试从XML
获取URL
文档。我知道我不应该在UI线程上这样做,所以我开始一个新的:
Thread t = new Thread(new GetXML());
t.start();
这将启动实现GetXML
的内部类Runnable
。
private class GetXML implements Runnable {
@Override
public void run() {
String xmlString = getXmlFromUrl(<URL of the XML as String>);
Document xmlDoc = getDomElement(xmlString);
String textValue = getTextValue(pointWhereItBreaks, xmlDoc, "movie");
}
}
如您所见,这会执行一些方法,但问题已出现在第一个getXmlFromUrl
中:
public String getXmlFromUrl(String xmlUrl) {
String xmlString = null;
try {
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost(xmlUrl);
//the following line causes the problem
HttpResponse httpResponse = httpClient.execute(httpPost);
HttpEntity httpEntity = httpResponse.getEntity();
xmlString = EntityUtils.toString(httpEntity);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return xmlString;
}
我找到了它破裂的地方。它没有通过以下行:
HttpEntity httpEntity = httpResponse.getEntity();
有人能告诉我如何修复代码吗?我坚持这个问题好几天了。当我从计算机上运行具有类似代码的Java应用程序时,我能够通过XML
获取URL
个文档。为什么它不适用于Android?
非常感谢!