前言
在我的任務清單中,很早就有了一個檔案下載器,但一直忙著沒空去寫。最近剛好放假,便抽了些時間完成了下文中的這個下載器。
介紹
同樣的,還是先上效果圖吧。
Jar包地址位於 FileDownloader
目前實現的主要功能有:
- 多執行緒下載
- 斷點續傳
- 自定義頭部等
即將完成的包括:
- 新增代理功能
- ...
感覺做了回標題黨,代理功能由於時間關係,將在下次更新加入。
關於設定代理,我這篇文章 Java實現Ip代理池 中有具體的設定方法。
另外除了這個代理功能,我也實在不知道下載器能加些啥功能了。。
使用說明
jar包的執行方式不用多說了吧,直接
java -jar FileDownloader.jar
這樣不加任何引數的話會輸出下文中的內容:
_____ __ ___ __ __
/ __(_) /__ / _ \___ _ _____ / /__ ___ ____/ /__ ____
/ _// / / -_) // / _ \ |/|/ / _ \/ / _ \/ _ `/ _ / -_) __/
/_/ /_/_/\__/____/\___/__,__/_//_/_/\___/\_,_/\_,_/\__/_/
usage: FileDownloader [options ...] <url>
-c 加上表明關閉斷點續傳,預設開啟
-H,--Header <arg> 新增請求頭部,格式:"header=value",多個可疊加使用該H引數
-h,--help 使用說明
-n,--num <arg> 開啟的執行緒數量,預設為8
-U,--User-Agent <arg> 新增User-Agent標識頭
於是,我們可以加上一些引數,比如這樣
java -jar FileDownloader.jar -c -U "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:68.0) Gecko/20100101 Firefox/68.0" -H Accept=* -H Cookie=value -n 10 https://www.picpick.org/releases/latest/picpick_inst.exe
這樣的話,我們就是 關閉了斷點續傳功能,帶上了 “Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:68.0) Gecko/20100101 Firefox/68.0” 的User-Agent, “*”的Accept頭部,value的Cookie,同時執行緒數量設定為10,然後便開始下載我們後面的資源了。其中注意如果某項值含有空格的話,要用雙引號圈起來,比如上面的user-agent,不然可能會解析錯誤。
實現
最後,如果對於其中一些實現細節感興趣的朋友,可以 到asche910這裡檢視原始碼,這裡由於篇幅原因就不貼上了。