使用Spring启动的RSS提要

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用Spring启动的RSS提要相关的知识,希望对你有一定的参考价值。

我是Java和Spring的新手,我正在尝试从一个站点读取和解析RSS feed。

问题是什么:我需要读取Feed中的所有数据,这将是分页调用。

我的解决方案是什么:我认为,如果我在一个循环中读取数据,除非我到达终点并且没有更多数据,否则我可以实现它。我的代码如下:

        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是否有效,或者是否有任何数据需要处理。怎么做

答案

除非您发出http请求,否则您不知道URL是否有效。所以在这种情况下,用try-catch包围代码并相应地处理异常是理想的。如果URL无效或没有返回数据,可以通过捕获IOException来处理。如果无法解析或生成返回的Feed,可以通过捕获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仅作为示例提供,理想情况下应使用日志库替换。

以上是关于使用Spring启动的RSS提要的主要内容,如果未能解决你的问题,请参考以下文章

RSS 提要中的 RSS 规范 HTML 代码

LINQ TO XML 解析 RSS 提要

RSS 提要文章的共享功能

使用 XML 包 R 解析 RSS 提要

无法使用jsoup获取RSS提要链接

将 WordPress 特色图片添加到 RSS 提要