使用 Spring 引导的 RSS 提要
RSS feed using Spring boot
我是 Java 和 Spring 的新手,我正在尝试从站点读取和解析 RSS 提要。
问题是什么:
我需要从提要中读取所有数据,这将是分页调用。
我的解决办法:我想,我是循环读取数据就可以实现的,除非我读到最后没有数据了。我的代码如下:
SyndFeedInput input = new SyndFeedInput();
int pageNumber = 1;
do {
URL feedSource = new URL("https://altaonline.com/feed?paged=" + pageNumber);
SyndFeed feed = input.build(new XmlReader(feedSource));
pageNumber = pageNumber + 1;
}
while ( pageNumber <= 27); //Need to fix this.
我需要帮助:
如果这个 URL 上没有数据,它会给我例外。我不确定如何检查 URL 是否有效,或者是否有任何数据要处理。怎么做
您不会知道 URL 是否有效 除非您发出 http 请求。所以在这种情况下,最好用 try-catch
包围代码并相应地处理异常。如果 URL 无效或未返回任何数据,可以通过捕获 IOException
来处理。如果无法解析或生成返回的提要,可以通过捕获 FeedException
.
来处理
SyndFeedInput input = new SyndFeedInput();
int pageNumber = 1;
try{
do {
URL feedSource = new URL("https://altaonline.com/feed?paged=" + pageNumber);
SyndFeed feed = input.build(new XmlReader(feedSource));
pageNumber++;
}
while (pageNumber <= 27);
} catch (IOException ex){
System.out.println("IO exception occurred due to: "+ ex);
//Handle this exception accordingly
} catch (FeedException ex) {
System.out.println("Feed exception occurred due to: "+ ex);
//Handle this exception accordingly
}
您甚至可以在底部捕获 Exception
以处理可能发生的任何其他未知异常。请注意,System.out.println
仅作为示例给出,理想情况下应使用日志库替换。
我是 Java 和 Spring 的新手,我正在尝试从站点读取和解析 RSS 提要。
问题是什么: 我需要从提要中读取所有数据,这将是分页调用。
我的解决办法:我想,我是循环读取数据就可以实现的,除非我读到最后没有数据了。我的代码如下:
SyndFeedInput input = new SyndFeedInput();
int pageNumber = 1;
do {
URL feedSource = new URL("https://altaonline.com/feed?paged=" + pageNumber);
SyndFeed feed = input.build(new XmlReader(feedSource));
pageNumber = pageNumber + 1;
}
while ( pageNumber <= 27); //Need to fix this.
我需要帮助: 如果这个 URL 上没有数据,它会给我例外。我不确定如何检查 URL 是否有效,或者是否有任何数据要处理。怎么做
您不会知道 URL 是否有效 除非您发出 http 请求。所以在这种情况下,最好用 try-catch
包围代码并相应地处理异常。如果 URL 无效或未返回任何数据,可以通过捕获 IOException
来处理。如果无法解析或生成返回的提要,可以通过捕获 FeedException
.
SyndFeedInput input = new SyndFeedInput();
int pageNumber = 1;
try{
do {
URL feedSource = new URL("https://altaonline.com/feed?paged=" + pageNumber);
SyndFeed feed = input.build(new XmlReader(feedSource));
pageNumber++;
}
while (pageNumber <= 27);
} catch (IOException ex){
System.out.println("IO exception occurred due to: "+ ex);
//Handle this exception accordingly
} catch (FeedException ex) {
System.out.println("Feed exception occurred due to: "+ ex);
//Handle this exception accordingly
}
您甚至可以在底部捕获 Exception
以处理可能发生的任何其他未知异常。请注意,System.out.println
仅作为示例给出,理想情况下应使用日志库替换。