У меня возникли проблемы с чтением двух каналов BBC в моем приложении для Android, они оба, похоже, перестали работать. Это особенно странно, потому что все другие каналы работают нормально, используя ту же систему. Я предполагаю, что если кто-то сможет протестировать их в Eclipse, это поможет мне определить, ограничивает ли брандмауэр / прокси моей работы доступ к этому конкретному веб-сайту.
Фиды 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 при тех же сетевых ограничениях, нет проблем.
Любая помощь будет принята с благодарностью!
Для информации вот код, который я использовал для получения каналов:
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());
}