我想开发一个简单的RSS阅读器,但遇到了一个小问题。当我尝试使用其他人所做的URLConnection加载Feed时,一些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 feed。当我输入另一个Feed时,例如" http://feeds.feedburner.com/tweakers/"它会返回正确的Feed。
我错过了什么? reddit .rss系统是否使用send重定向或者我的URLConnection无法处理的东西?
答案 0 :(得分:1)
您遇到的问题与此处相同:Java URLConnection returns null for valid URL
Reddit将您的http网址重定向到https,您的代码无法处理重定向。请改用https://www.reddit.com/r/technology/new/.rss?sort=new
。
当您处理代码中的所有这些问题(网络,提要解析)和边缘情况时,您的RSS阅读器不再简单:)