我正在使用Apache Commons IO 2.4部件**FileUtils.copyURLToFile(URL, File)
**下载文件并将其保存到我的计算机上。问题是有些站点拒绝在没有引用和用户代理数据的情况下连接。
我的疑问:
1.有没有办法指定copyURLToFile
方法的用户代理和引用者?
1.或者我应该使用另一种方法来下载文件,然后将给定的InputStream
保存到文件中?
我正在使用Apache Commons IO 2.4部件**FileUtils.copyURLToFile(URL, File)
**下载文件并将其保存到我的计算机上。问题是有些站点拒绝在没有引用和用户代理数据的情况下连接。
我的疑问:
1.有没有办法指定copyURLToFile
方法的用户代理和引用者?
1.或者我应该使用另一种方法来下载文件,然后将给定的InputStream
保存到文件中?
3条答案
按热度按时间fzwojiic1#
我用
HttpComponents
代替了Commons-IO
重新实现了这个功能。当然,上面的代码比一行代码占用更多的空间:
但它将给予您能够对进程进行更多的控制,并且不仅允许您指定超时,还允许您指定
User-Agent
和Referer
值,这对许多Web站点都很重要。ehxuflar2#
完成有关如何处理超时的已接受答案:
如果要设置超时,则必须创建如下
CloseableHttpClient
:而且,使用try-with-resource语句来处理
CloseableHttpClient
的结束语句来创建CloseableHttpClient
可能是一个好主意:fhity93d3#
可能不会,除非您能够掌握打开URL的底层机制。
我推荐使用https://hc.apache.org/库。它有很多关于头文件等的特性。