我有一个简单的代码,可以读取RSS feed。过去可以使用给定的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();
}
我想念什么吗?
答案 0 :(得分:1)
URL问题。回复Object moved to <a href="https://www.dpreview.com/feeds/reviews/latest">here</a>
。这就是为什么异常Invalid document
。
这意味着XmlReader
不支持304重定向。
因此,如果将URL固定为https
而不是http
,则一切正常。
类似的issue表示,您必须处理重定向自己的问题。