【问题标题】:Java Android XML parsing, can't connect to website?Java Android XML解析,无法连接到网站?
【发布时间】:2011-09-28 19:04:45
【问题描述】:

被这个问题困扰了一整天,一直在尝试从这个网站检索 XML:

http://www.teamliquid.net/video/streams/?xml=1&filter=live

但是我无法连接,我可以通过 google 等找到连接,但是当我尝试使用 XML 解析通过模拟器连接时,它不起作用。但我可以连接到 Google 天气等。

如果你想使用 XML 文档,下面是这样说的:

考虑抓取此页面以获取流数据?请改用我们的 XML 提要:http://www.teamliquid.net/video/streams?xml=1&filter=live

gzip 编码是必需的,请同时发送一个有效的用户代理,其中包含您的应用程序/站点的名称和联系信息。此页面和 XML 每五分钟更新一次,请不要比每五分钟更频繁地进行轮询,否则您可能会面临被 IP 封禁的风险。如有任何问题,请PM R1CH。

所以我尝试了 2 种方法,第一个代码示例,使用 XMLReader:

private void DownloadXML()
{
    URL website;
    try{
        website = new URL("http://www.teamliquid.net/video/streams/?xml=1&filter=live");
        SAXParserFactory spf = SAXParserFactory.newInstance();
        SAXParser sp = spf.newSAXParser();
        XMLReader xr = sp.getXMLReader();
        rp = new RetrievePlayers();
        xr.setContentHandler(rp);
        xr.parse(new InputSource(website.openStream()));


    }catch(Exception e) {
        setText(""+e);
    }
}

第二个示例,使用 GZIPInputStream,正如它所说的有关 GZIP 加密的内容。

private void DownloadXML()
{
    InputStream in = null;
    GZIPInputStream gin = null;
    URL website;
    try{
        website = new URL("http://www.teamliquid.net/video/streams/?xml=1&filter=live");
        in = website.openStream();
        gin = new GZIPInputStream(in);

        BufferedReader reader = new BufferedReader(new InputStreamReader(gin));

        setText(reader.readLine());

    }catch(Exception e) {
        setText(""+e);
    }
 }

这两个代码都会生成 java.io.Exception.FileNotFoundException 为什么我不能得到它?我可以用 Google chrome 看到 XML 文件:>

抱歉,我对 XML 很陌生,只花了 2 天时间使用它:/

【问题讨论】:

    标签: java android xml gzip


    【解决方案1】:

    我将成为那个人,可能是您的清单中没有设置互联网权限吗?我的意思是,您正在从网站解析,所以如果您没有访问网络的权限,那么您将不会得到解析响应。

    只是一个理论,我正在努力帮助您解决问题:)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-02-12
      • 2013-07-13
      • 2012-08-31
      • 2019-12-17
      • 1970-01-01
      • 1970-01-01
      • 2014-11-26
      • 1970-01-01
      相关资源
      最近更新 更多