在Android App上访问BBC RSS feed

时间:2011-07-15 16:54:58

标签: android rss

我在Android应用上阅读两个BBC Feed时遇到了一些麻烦,他们似乎都超时了。这特别奇怪,因为使用完全相同的系统所有其他提要工作正常。我想如果有人可以在他们的Eclipse中测试它们,它可能会帮助我确定我的工作的防火墙/代理是否限制访问这个特定的网站。

Feed是http://newsrss.bbc.co.uk/weather/forecast/2159/Next3DaysRSS.xmlhttp://feeds.bbci.co.uk/news/england/kent/rss.xml

我正在阅读其他供稿,工作正常,例如http://www.kent.ac.uk/news/rss.html

另一个奇怪的事情就是我旁边的小伙子在相同的网络限制下工作iPhone没有问题。

非常感谢任何帮助!

这里的信息是我用来提取Feed的代码:

 HttpParams params = new BasicHttpParams();
 HttpConnectionParams.setConnectionTimeout(params, 10000);


 // proxy settings
 String proxyHost = android.net.Proxy.getDefaultHost();
 int proxyPort = android.net.Proxy.getDefaultPort();

if(proxyPort != -1){
    params.setParameter(ConnRoutePNames.DEFAULT_PROXY, new HttpHost(proxyHost,proxyPort));
}

URL url = null;
        try {

            SAXParserFactory spf = SAXParserFactory.newInstance();
            SAXParser sp = spf.newSAXParser();
            XMLReader xr = sp.getXMLReader();

            url = new URL(feedUrl);

            URLConnection conn = url.openConnection();
            // setting these timeouts ensures the client does not deadlock indefinitely
            // when the server has problems.
            conn.setConnectTimeout(2000);
            conn.setReadTimeout(2000);

            xr.setContentHandler(this);

    /* This is where it lurches indefinitely VVV */
            xr.parse(new InputSource(url.openStream()));




        } catch (IOException e) {
            Log.e("RSS Handler IO", e.getMessage() + " >> " + e.toString());
        } catch (SAXException e) {
            Log.e("RSS Handler SAX", e.toString());
        } catch (ParserConfigurationException e) {
            Log.e("RSS Handler Parser Config", e.toString());
        }

1 个答案:

答案 0 :(得分:0)

我猜你会遇到与this question相同的问题。如果您取出代理设置,它是否有效?如果这是问题所在,我建议在将响应流提供给XMLReader之前将其写入内存。