WEB开发网
开发学院软件开发Java 用java多线程断点续传实践 阅读

用java多线程断点续传实践

 2009-09-24 00:00:00 来源:WEB开发网   
核心提示: 在ChildThread的构造方法中,除了设置一些从主线程中带来的id, 起始位置之外,用java多线程断点续传实践(4),就是新建了一个临时文件用来存放当前线程的下载数据,临时文件的命名规则是这样的:下载的目标文件名+”_”+线程编号,比较重要的有:Uer-Agent模

在ChildThread的构造方法中,除了设置一些从主线程中带来的id, 起始位置之外,就是新建了一个临时文件用来存放当前线程的下载数据。临时文件的命名规则是这样的:下载的目标文件名+”_”+线程编号。

现在让我们来看看从网络中读数据是怎么读的。我们通过URLConnection来获得一个http的连接。有些网站为了安全起见,会对请求的http连接进行过滤,因此为了伪装这个http的连接请求,我们给httpHeader穿一件伪装服。下面的setHeader方法展示了一些非常常用的典型的 httpHeader的伪装方法。比较重要的有:Uer-Agent模拟从Ubuntu的firefox浏览器发出的请求;Referer模拟浏览器请求的前一个触发页面,例如从skycn站点来下载软件的话,Referer设置成skycn的首页域名就可以了;Range就是这个连接获取的流文件的起始区间。

private void setHeader(URLConnection con) {   
    con.setRequestProperty("User-Agent", "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.3) Gecko/2008092510 Ubuntu/8.04 (hardy) Firefox/3.0.3");   
    con.setRequestProperty("Accept-Language", "en-us,en;q=0.7,zh-cn;q=0.3");   
    con.setRequestProperty("Accept-Encoding", "aa");   
    con.setRequestProperty("Accept-Charset", "ISO-8859-1,utf-8;q=0.7,*;q=0.7");   
    con.setRequestProperty("Keep-Alive", "300");   
    con.setRequestProperty("Connection", "keep-alive");   
    con.setRequestProperty("If-Modified-Since", "Fri, 02 Jan 2009 17:00:05 GMT");   
    con.setRequestProperty("If-None-Match", "\"1261d8-4290-df64d224\"");   
    con.setRequestProperty("Cache-Control", "max-age=0");   
    con.setRequestProperty("Referer", "http://http://www.bt285.cn");   
}

上一页  1 2 3 4 5 6 7 8  下一页

Tags:java 线程 断点

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接