Android:使用HTTPClient从URL获取XML

时间:2015-05-22 10:55:17

标签: java android xml http url

我正在尝试从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?

非常感谢!

0 个答案:

没有答案