无法阅读简单的 RSS 提要

Unable to read simple RSS feed

我有一个读取 RSS 提要的简单代码。它过去在给定的 RSS 提要上工作正常,但由于某种原因停止工作并出现以下异常:

Exception in thread "main" java.lang.IllegalArgumentException: Invalid document
at com.rometools.rome.io.WireFeedInput.build(WireFeedInput.java:312)
at com.rometools.rome.io.WireFeedInput.build(WireFeedInput.java:234)
at com.rometools.rome.io.SyndFeedInput.build(SyndFeedInput.java:150)

这是代码:

    URL url  = new URL("http://www.dpreview.com/feeds/reviews/latest");
    XmlReader reader = null;
    try {
        reader = new XmlReader(url);
        SyndFeed feeder = new SyndFeedInput().build(reader);
        System.out.println("Feed Title: "+ feeder.getAuthor());
        for (Iterator i = feeder.getEntries().iterator(); i.hasNext();) {
            SyndEntry syndEntry = (SyndEntry) i.next();
            System.out.println(syndEntry.getTitle());
        }
    } finally {
        if (reader != null)
            reader.close();
    }

我遗漏了什么吗?

URL 有问题。响应 Object moved to <a href="https://www.dpreview.com/feeds/reviews/latest">here</a>。这就是异常 Invalid document.

的原因

这意味着 XmlReader 不支持 304 重定向。

因此,如果您将 URL 改为 https 而不是 http,一切正常。

有类似的issue,它说,你必须自己处理重定向。