我正在尝试使用 java 应用程序下载 vcalendar,但无法从特定链接下载。
我的代码是:
URL uri = new URL("http://codebits.eu/s/calendar.ics");
InputStream in = uri.openStream();
int r = in.read();
while(r != -1) {
System.out.print((char)r);
r = in.read();
}
当我尝试从另一个链接下载时,它可以工作(例如: http://www.mysportscal.com/Files_iCal_CSV/iCal_AUTO_2011/f1_2011.ics )。有些东西不允许我下载,我不明白为什么,当我尝试使用浏览器时它可以工作。
最佳答案
我会关注这个example 。基本上,获取连接的响应代码。如果是重定向(例如本例中的 301),则检索 header 位置并尝试使用该位置访问文件。
简单的例子:
URL uri = new URL("http://codebits.eu/s/calendar.ics");
HttpURLConnection con = (HttpURLConnection)uri.openConnection();
System.out.println(con.getResponseCode());
System.out.println(con.getHeaderField("Location"));
uri = new URL(con.getHeaderField("Location"));
con = (HttpURLConnection)uri.openConnection();
InputStream in = con.getInputStream();
关于java - 以编程方式下载文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8335191/