2012-12-30 73 views
0

我在做一個簡單的RSS源教程,不幸的是出了問題。 教程:http://www.cse.nd.edu/courses/cse40814/www/RSS_Android.pdf簡單的RSS源無法打開網站

(更詳細的教程是一個網站的帶寬限制達到上。)

的代碼幾乎是相同的,減去一些變數,我改變,使他們更容易爲我鑑別。我沒有複製和粘貼任何東西,所以我可能在輸入時犯了一個錯誤,但我懷疑它。我的日誌告訴我的唯一情況是它無法打開測試網站。 控制檯識別沒有錯誤。

的logcat:

12-29 21:16:40.062: E/RssReader(614): Couldn't open http://www.southbendtribune.com/ws/content/collection/?collection=sbt_sports_photogalleries&key=d3IwcUN6Ym9NVEV0MWkzcEJsVEU2UFp3bWxmbVRzWFBxbVNyc0pjd1BOWjk4alBLSEpOdHRJVlhXK1dscWhvZg&version=1.0&limit=20 

主要活動:

package tutorials.baseRSSReader; 

import android.app.Activity; 
import android.os.Bundle; 
import android.util.Log; 
import android.widget.ArrayAdapter; 
import android.widget.ListView; 

public class StartMain extends Activity { 

    @Override 
    public void onCreate(Bundle savedInstanceState){ 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.start_main); 

    try { 
     // Create RSS reader 
     RssReader rssReader = new RssReader("http://www.southbendtribune.com/ws/content/collection/?collection=sbt_sports_photogalleries&key=d3IwcUN6Ym9NVEV0MWkzcEJsVEU2UFp3bWxmbVRzWFBxbVNyc0pjd1BOWjk4alBLSEpOdHRJVlhXK1dscWhvZg&version=1.0&limit=20"); 

     // Get a ListView from main view 
     ListView Items = (ListView) findViewById(R.id.listView1); 

     // Create a list adapter 
     ArrayAdapter<RssItem> adapter = new ArrayAdapter<RssItem>(this,android.R.layout.simple_list_item_1, rssReader.getItems()); 
     // Set list adapter for the ListView 
     Items.setAdapter(adapter); 

     // Set list view item click listener 
     Items.setOnItemClickListener(new ListListener(rssReader.getItems(), this)); 

    } catch (Exception e) { 
     Log.e("RssReader", e.getMessage()); 
    } 
    } 
} 

RssReader:

package tutorials.baseRSSReader; 

import java.util.List; 

import javax.xml.parsers.SAXParser; 
import javax.xml.parsers.SAXParserFactory; 

public class RssReader { 

    private String rssURL; 

    public RssReader(String rssURL) 
    { 
     this.rssURL = rssURL; 
    } 

    public List<RssItem> getItems() throws Exception { 
     // SAX parse RSS data 
     SAXParserFactory factory = SAXParserFactory.newInstance(); 
     SAXParser saxParser = factory.newSAXParser(); 

     RssParseHandler handler = new RssParseHandler(); 

     saxParser.parse(rssURL, handler); 

     return handler.getItems(); 

    } 
} 

,如果需要,我可以列出所有的代碼,但我認爲錯誤是在這些地方兩個班。我很感激提前的幫助。

編輯: 我用的飼料是無效的,我現在用的:http://rss.nytimes.com/services/xml/rss/nyt/HomePage.xml

而且因爲我得到了一個實際設備的保持,我在日誌越來越多了一個錯誤:

12-29 22:19:02.608: W/global(11470): [DNS] InetAddress.lookupHostByName NOT CACHED, so DNS Query 

雖然我沒有在模擬器中看到它。

編輯: 刷新清單,有些東西導致它無法識別權限標記,但我不知道什麼... 我不再收到「無法打開」的錯誤,但現在我試圖理解Log ... AndDev網站上沒有包含lookupHostByName的任何內容,但在我看來,它無法找到它所尋找的內容,可能是RSS Feed I'm使用只是不行。 logcat的:

12-31 13:34:36.314: W/global(2805): [DNS] InetAddress.lookupHostByName NOT CACHED, So DNS Query 
12-31 13:34:36.384: W/global(2805): [DNS] name(rss.nytimes.com), IN, AAAA, CNAME, TTL=4m16s 
12-31 13:34:36.384: W/global(2805): [DNS] name(rss.nytimes.com), IN, AAAA, CNAME, TTL=11m44s 
12-31 13:34:36.384: W/global(2805): [DNS] name(rss.nytimes.com), IN, A, CNAME, TTL=4m16s 
12-31 13:34:36.384: W/global(2805): [DNS] name(rss.nytimes.com), IN, A, CNAME, TTL=11m44s 
12-31 13:34:36.384: W/global(2805): [DNS] name(rss.nytimes.com), IN, A, A, TTL=50S 
12-31 13:34:36.384: W/global(2805): [DNS] InetAddress.lookupHostByName ttl= 50 
12-31 13:34:36.384: W/global(2805): [DNS] AddressCache.customTtl : ttlS= 50 
12-31 13:34:36.645: W/global(2805): [DNS] InetAddress.lookupHostByName host = rss.nytimes.com => cached.. 

我認爲這是指對一個錯誤在解析?我不確定。

+0

也許先嚐試其他網址,看看是否有用? Google閱讀器拒絕將您發佈的網址添加到我的Feed列表中,這可能是一個線索。 –

+1

其他感興趣的東西 - RSS提要驗證器:http://validator.w3.org/appc/ –

+0

謝謝,該提要根本無效。這並不能解決問題。我正在使用一個新的有效提要,http://rss.nytimes.com/services/xml/rss/nyt/HomePage.xml,它仍然會得到相同的錯誤。 – Mia

回答

0

開始使用不同的教程,一些代碼是無效的和過時的。