我的目标是使用HttpClient下载文件。目前我的代码如下:
HttpClient client = HttpClientBuilder.create().build();
HttpGet request = new HttpGet(downloadURL);
HttpResponse response = client.execute(request);
HttpEntity entity = response.getEntity();
if (entity != null) {
FileOutputStream fos = new FileOutputStream("C:\\file");
entity.writeTo(fos);
fos.close();
}
我的下载链接看起来像这样:http://example.com/file/afz938f348dfa3。正如你所看到的,在URL中没有文件扩展名,但是当我使用普通浏览器访问该URL时,它会下载文件“asdasdaasda.txt”或“asdasdasdsd.pdf”(名称与URL不同,扩展名不总是相同的,这取决于我要下载什么)。我的HTTP响应如下所示:
日期:Mon, 29 May 2017 14:57:14 GMT
服务器:Apache/2.4.10
内容-Disposition:attachment; filename="149606814324_testfile.txt"
接受范围:字节
缓存控制:public,max-age=0
最后修改时间:星期一,2017年5月29日14:29:06 GMT
ETag:W/"ead-15c549c4678-gzip"
内容类型:text/plain; charset=UTF-8
变化:接受编码方式
内容编码:gzip
内容长度:2554
保持活动状态:超时=5,最大=100
连接:保持活动状态
如何使我的Java代码能够自动下载带有正确名称和扩展名的文件到指定文件夹?