2011-09-28 71 views
1

一直停留整天這個問題,一直試圖從這個網站上檢索XML:Java Android的XML解析,無法連接到網站?

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

但我就是無法連接,我可以找到通過谷歌等連接到它,但是當我嘗試使用XML解析通過模擬器進行連接,但它不起作用。但我可以連接到谷歌的天氣等等。

這裏,如果你想使用XML文檔什麼說:

刮此網頁數據流的思考?請使用我們的XML提要:http://www.teamliquid.net/video/streams?xml=1&filter=live

gzip編碼是必需的,也請發送一個有效的用戶代理與您的應用程序/網站和聯繫信息的名稱。此頁面和XML每五分鐘更新一次,請不要每隔五分鐘更頻繁地進行一次輪詢,否則可能會被IP禁止。如果您有任何問題,請PM R1CH。

所以I'ave tryed它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,seing因爲它說,大約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 爲什麼我不能得到它?我可以看到谷歌瀏覽器的XML文件:>

對不起,我是很新,XML,只用了2天,它的工作:/

回答

0

我要成爲那個人,會不會是您的清單中沒有設置互聯網權限?我的意思是,你是從一個網站解析的,所以如果你沒有進入網絡的權限,那麼你將不會得到解析響應。

只是一種理論,我想幫你解決問題:)

+0

已加入,正如我上面所說的,我可以連接到谷歌API天氣預報等。 –