Java 无法读取简单RSS源
我有一个简单的代码来读取RSS提要。它过去在给定的RSS提要上工作正常,但由于某种原因,它停止工作,出现以下异常:Java 无法读取简单RSS源,java,rss,rss-reader,Java,Rss,Rss Reader,我有一个简单的代码来读取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.buil
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有问题。将
对象移动到
进行响应。这就是异常无效文档的原因
这意味着XmlReader
不支持304重定向
因此,如果您将URL改为https
,而不是http
,则一切正常
也有类似的情况,也就是说,你必须自己处理重定向问题。谢谢@muradm。我想知道为什么框架不遵循重定向。。。RSS提要应该是一个常见的用例……正如它在文档中所说的,它与提要一起工作,但不关注传输。它包括非常基本的http客户端。如果选中XmlReader
,它可以从不同的源(包括流)进行读取。因此,您可以在那里插入任何类型的数据源,比如更高级的http客户端,或者其他一些实现,比如夸大websocket、原始tcp/ip、数据库等。