2012-02-11 87 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”;