java - 使用 Spring boot 的 RSS 提要

标签 java spring-boot rss xmlreader

我是 Java 和 Spring boot 新手,我正在尝试从站点读取和解析 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 是否有效,或者是否有任何数据需要处理。怎么做

最佳答案

除非您发出 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 仅作为示例给出,理想情况下应使用日志记录库来替换。

关于java - 使用 Spring boot 的 RSS 提要,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55297801/

相关文章:

java - 具有大量参数的 HTTP.GET 操作 Spring Rest

java - Spring Boot - Rest Controller 在使用 Lombok 时返回空对象

java - 如何执行 parse() 并返回正确的值

javascript - 处理 HTML,更新,然后在 Ghost 中保存

php - 使用 PHP 从文本中去除特殊字符

java - 替换文本文件的一行

java - JSF 转换器如何处理 :convertDateTime works?

java - 如何重命名文件Java.nio?

java - 套接字 Java 客户端 - Python 服务器

java - 为什么在作为 JAR 执行时会出现 NoSuchMethodException?