我正在使用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