我想开发一个简单的RSS阅读器,但遇到了一个小问题。当我尝试使用 URL 加载提要时,一些 RSS 提要只是不返回任何内容。这是我的代码:
import java.net.*;
import java.io.*;
public class URLConnectionReader {
public static void main(String[] args) throws Exception {
URL yahoo = new URL("http://www.reddit.com/r/technology/new/.rss?sort=new");
URLConnection yc = yahoo.openConnection();
BufferedReader in = new BufferedReader(
new InputStreamReader(
yc.getInputStream()));
String inputLine;
while ((inputLine = in.readLine()) != null)
System.out.println(inputLine);
in.close();
}
}
此代码不返回任何内容,但在浏览器中查看时确实会显示 rss 提要。当我输入另一个提要时,例如"http://feeds.feedburner.com/tweakers/",它会返回正确的提要。
我错过了什么?Reddit .rss系统是否使用发送重定向或我的 URLConnection 无法处理的方式?
您面临与此处相同的问题: Java URLConnection 为有效 URL 返回 null
Reddit将您的http网址重定向到https,而您的代码不会处理重定向。请改用https://www.reddit.com/r/technology/new/.rss?sort=new
。
当您在代码中处理所有这些问题(网络、提要解析(和边缘情况时,您的 RSS 阅读器不再简单:)