作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我真的是 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
最佳答案
如果您在应用程序中使用 spring 框架,请查看是否可以使用 FileCopyUtils 方法的副本并将 fileInputStream 复制到响应输出流,如下所示。
FileCopyUtils.copy(new FileInputStream(file), response.getOutputStream());
关于java - http请求在java中下载文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28898951/
我是一名优秀的程序员,十分优秀!