2012-02-11 125 views
1

我正在使用struts1做項目。 我獲取RSS提要使用ROME,但它失敗了兩個條件:如何避免羅馬異常

  1. 當我的防火牆禁止以RSS URL(響應代碼403)
  2. 當我插入不正確RSS網址

爲了避免這樣的條件我應該怎麼做?

+1

源代碼和實際錯誤? – 2012-02-11 09:05:53

回答

0

只是捕捉異常並處理它們。

+0

好的意思是再次打電話給羅馬來獲取rss飼料的權利 – 2012-02-11 07:59:50

0

有些情況你根本無法避免。

您無法避免網絡中斷,您無法避免錯誤輸入的網址。

但是,您可以做的是檢查網絡是否可達,以及URL是否正確輸入。

您應該捕捉異常並向用戶提供有意義的錯誤消息。

0

關於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」;