我在Android应用上阅读两个BBC Feed时遇到了一些麻烦,他们似乎都超时了。这特别奇怪,因为使用完全相同的系统所有其他提要工作正常。我想如果有人可以在他们的Eclipse中测试它们,它可能会帮助我确定我的工作的防火墙/代理是否限制访问这个特定的网站。
Feed是http://newsrss.bbc.co.uk/weather/forecast/2159/Next3DaysRSS.xml和http://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());
}
答案 0 :(得分:0)
我猜你会遇到与this question相同的问题。如果您取出代理设置,它是否有效?如果这是问题所在,我建议在将响应流提供给XMLReader之前将其写入内存。