我正在使用struts1做項目。 我獲取RSS提要使用ROME,但它失敗了兩個條件:如何避免羅馬異常
- 當我的防火牆禁止以RSS URL(響應代碼403)
- 當我插入不正確RSS網址
爲了避免這樣的條件我應該怎麼做?
我正在使用struts1做項目。 我獲取RSS提要使用ROME,但它失敗了兩個條件:如何避免羅馬異常
爲了避免這樣的條件我應該怎麼做?
只是捕捉異常並處理它們。
好的意思是再次打電話給羅馬來獲取rss飼料的權利 – 2012-02-11 07:59:50
有些情況你根本無法避免。
您無法避免網絡中斷,您無法避免錯誤輸入的網址。
但是,您可以做的是檢查網絡是否可達,以及URL是否正確輸入。
您應該捕捉異常並向用戶提供有意義的錯誤消息。
關於403個
一些飼料似乎有一定的保護(DDOS) 因此,基於用戶代理(你的情況的「Java」),他們拒絕你閱讀的feed 所以,你必須設定自己的用戶代理(像Firefox的用戶代理),打開這樣
System.setProperty("http.agent", USER_AGENT);
URLConnection openConnection = url.openConnection();
is = url.openConnection().getInputStream();
if ("gzip".equals(openConnection.getContentEncoding())) {
is = new GZIPInputStream(is);
}
InputSource source = new InputSource(is);
input = new SyndFeedInput();
syndicationFeed = input.build(source);
XmlReader reader = new XmlReader(url);
syndicationFeed = input.build(reader);
連接之前我當前USER_AGENT字符串是
「的Mozilla/5.0(Windows NT的10.0; WOW64; RV:41.0)壁虎/ 20100101火狐/ 41.0」;
源代碼和實際錯誤? – 2012-02-11 09:05:53