用Wget进行下载
wget下载可以不用考虑资源的双向认证的问题,即
wget -N -S -O " + filePath + " " + urlStr + " --no-check-certificate
所以java自带的下载方式可能不是所有的资源都能下载,而wget可以,并且wget支持断点续传,默认是20次重复的下载机会。并且下载异常稳定。
public long download(String urlStr, String filePath){
String wget = "wget -N -S -O " + filePath + " " + urlStr + " --no-check-certificate";
log.info("----------执行语句---------" + wget);
System.out.println(wget);
Runtime r = Runtime.getRuntime();
log.info("-------------------------------urlStr------cbj------1" + urlStr);
Process p = null;
long fileLength = -1;
boolean flag = false;
try {
p = r.exec(wget);
final InputStream is1 = p.getInputStream();
final InputStream is2 = p.getErrorStream();
BufferedReader br2 = new BufferedReader(new InputStreamReader(is2));
String line2 = null;
while ((line2 = br2.readLine()) != null) {
System.out.println("错误流" + line2);
if(line2.indexOf("200 OK") != -1){
flag = true;
}
if(line2.indexOf("Content-Length") != -1 && flag){
fileLength = NumberUtils.toLong(line2.split(":")[1].trim());
break;
}
}
Task task = new Task(is2);
executor.submit(task);
return fileLength;
}catch(Exception e){
e.printStackTrace();
}
return fileLength;
}
用Wget进行下载的更多相关文章
- [No00006B]方便的网络下载工具wget 可下载网站目录下的所有文件(可下载整个网站)
wget是linux下命令行的下载工具,功能很强大,它能完成某些下载软件所不能做的,比如如果你想下载一个网页目录下的所有文件,如何做呢?网络用户有时候会遇到需要下载一批文件的情况,有时甚至需要把整个网 ...
- wget的下载与安装使用
wget的下载与安装:下载地址:ftp://ftp.cs.cuhk.edu.hk/pub/gnu/gnu/wget安装:先把wget下载到的tar文件解压,然后cd到wget目录下# ./config ...
- 使用wget -i下载多个文件
使用wget -i下载多个文件 命令: wget -i filelist.txt 说明: 首先,保存一份下载链接文件 cat > filelist.txt url1 url2 url3 url4
- 通过wget工具下载指定文件中的URLs对应的资源并保存到指定的本地目录中去并进行文件完整性与可靠性校验
创建URLs文件在终端输入cd target_directory回车,便把当前文件夹切换到了目标文件夹target_directory,此后创建的文件都会丢它里面在终端输入cat > URLs回 ...
- 使用wget命令下载网络资源
wget是GNU/Linux下的一个非交互式(non-interactive)网络下载工具,支持HTTP.HTTPS与FTP协议,并能够指定HTTP代理服务器.虽然wget命令与curl命令相比支持的 ...
- Linux wget 命令下载文件
wget是Linux系统中用来下载文件的工具,其功能还是比较多的,能够下载单个文件,也可以分段下载,下面小编将针对wget命令的用法给大家做个实例介绍. 实例1 :下载单个文件 # wget http ...
- 阿里云rds linux平台使用wget 工具下载备份与日志文件
1. 获取备份下载地址 RDS 控制台 备份恢复 数据备份,选择需要下载的备份集,点击“下载”. 点击“复制内网地址” 或 “复制外网地址” 来获取备份的 内网 或 外网 下载地址. 日志备份的地 ...
- Linux wget 批量下载
需求:已知50个pdf的URL地址,需要批量下载,该怎么办呢? 方案一:使用wget自带的一个功能 -i 选项 从指定文件中读取下载地址,这样的好处是一直是这一个wget进程下载所有pdf,不会来回 ...
- linux wget指定下载目录和重命名
当我们在使用wget命令下载文件时,通常会需要将文件下载到指定的目录,这时就可以使用 -P 参数来指定目录,如果指定的目录不存在,则会自动创建. 示例: p.p1 { margin: 0; font: ...
- 用wget命令下载jdk
Oracle官网上下载jdk,需要点击accept licence的才能下载,使用下面的命令,直接可以下载.wget --no-check-certificate --no-cookies --hea ...
随机推荐
- 2基本概念--python深度机器学习
参考彭亮老师的视频教程:转载请注明出处及彭亮老师原创 视频教程: http://pan.baidu.com/s/1kVNe5EJ 基本概念:训练集,测试集,特征值,监督学习,非监督学习,半监督学习,分 ...
- BAE 环境下配置 struts2 + spring + hibernate(SSH)(二)struts2
在myeclipse下开发的 应用但是 放到BAE下就出现了问题,虽然显示发布成功,但是访问的时候就会出现503 Service Unavailable 错误.通过调整 web.xml 发现纯Serv ...
- Kendo UI for Angular 2 控件
Kendo UI for Angular 2 控件 伴随着 Angular 2 的正式 release,Kendo UI for Angular 2 的第一批控件已经发布了,当前是 Beta 版本,免 ...
- Mongodb2.6升级到Mongodb3.0.2笔记
PS:升级到3版本的Mongodb以后,drop集合是可以直接释放磁盘空间的 停止老版本Mongodb >use admin >db.shutdownServer(); 下载解压新版本Mo ...
- codeforces C. Devu and Partitioning of the Array
题意:给你n个数,然后分成k部分,每一个部分的和为偶数的有p个,奇数的有k-p个,如果可以划分,输出其中的一种,不可以输出NO; 思路:先输出k-p-1个奇数,再输出p-1个偶数,剩余的在进行构造. ...
- WINDOWS下的SALT-MINION安装流水图
简单的下一步下一步, 没多少说的,可以在安装的时候设置MASTER和MINION的东东.. 不多说,上图:
- 我的VSTO之路(二):VSTO程序基本知识
原文:我的VSTO之路(二):VSTO程序基本知识 开始之前,首先我介绍一下我的开发环境:VS2010 + Office 2010,是基于.Net framework 4.0和VSTO 4.0.以下的 ...
- left join 、right join 、inner join和 full join的区别
内连接 INNER JOIN(等值连接):只显示两个表中联结字段相等的行.这个和用select查询多表是一样的效果,所以很少用到: 外连接:LEFT JOIN :以左表为基础,显示左表中的所 ...
- Hash unique和Sort unique
SQL> set linesize 200 SQL> set pagesize 200 SQL> set autot trace SQL> select distinct de ...
- (转载)PHP strtotime函数详解
(转载)http://www.jb51.net/article/21495.htm strtotime函数是一个很好的函数,灵活的运用它,会给你的工作带来不少方便.但PHP的手册中却对此函数的参数没作 ...