【发布时间】:2015-03-06 12:37:16
【问题描述】:
我对 Java 真的很陌生,所以我希望你能帮助我。 我想编写一个 http 请求以从网站下载文件 (pdf)。 本网站正在使用 cookie。所以我必须发送第一个请求以获取 cookie,然后发送第二个请求以下载文件。
如果可能,我不想使用外部库。
这是我目前为止的:
URLConnection request = null;
String url = str;
CookieHandler.setDefault(new CookieManager(null, CookiePolicy.ACCEPT_ALL));
request = new URL(url ).openConnection();
System.setProperty("http.maxRedirects", "100");
InputStream in = request.getInputStream();
File downloadedFile = File.createTempFile("test", ".pdf");
FileOutputStream out = new FileOutputStream(downloadedFile);
byte[] buffer = new byte[1024];
int len = in.read(buffer);
while (len != -1) {
out.write(buffer, 0, len);
len = in.read(buffer);
if (Thread.interrupted()) {
try {
throw new InterruptedException();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
in.close();
out.close();
return downloadedFile.getAbsolutePath();
我的代码似乎什么也没做...
最好的愿望 M1K
【问题讨论】:
-
在您的问题中,您曾说过您需要有一个 cookie 才能下载文件,但您发布的代码会在连接下载文件之前重置
CookieManager,这意味着之前保存的所有cookies都将被删除。
标签: java http cookies download