Невозможно прочитать простой канал RSS - PullRequest
0 голосов
/ 10 ноября 2018

У меня есть простой код, который читает 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();
    }

Что-то, чего мне не хватает?

1 Ответ

0 голосов
/ 11 ноября 2018

Проблема с URL. Отвечает Object moved to <a href="https://www.dpreview.com/feeds/reviews/latest">here</a>. Вот почему исключение Invalid document.

Это означает, что XmlReader не поддерживает перенаправления 304.

Так что если вы исправите свой URL-адрес на https вместо http, все будет работать.

Была похожая проблема , в которой говорится, что вам приходится иметь дело с перенаправлениями себя.

...