4
UrlDownloadToFile在AutoHotkey中是一個很好的命令,在大多數情況下工作得很好,但有時下載機制對於它來說太複雜了。例如,如果下載需要設置特定的用戶代理,或者下載需要cookie或甚至密碼。UrlDownloadToFile的替代
所以問題是:
是否有更高級的下載功能,可以處理上述所有的說法?
UrlDownloadToFile在AutoHotkey中是一個很好的命令,在大多數情況下工作得很好,但有時下載機制對於它來說太複雜了。例如,如果下載需要設置特定的用戶代理,或者下載需要cookie或甚至密碼。UrlDownloadToFile的替代
所以問題是:
是否有更高級的下載功能,可以處理上述所有的說法?
我這個前一段時間寫的,並認爲這將是一個不錯的主意,把它包起來的函數,它張貼在這裏:
Download(UrlToFile,SaveFileAs:="",Overwrite:=True,headers:="",method:="GET",postData:="") {
WinHttpObj := ComObjCreate("WinHttp.WinHttpRequest.5.1")
WinHttpObj.Open(method, UrlToFile)
For header, value in headers
WinHttpObj.SetRequestHeader(header, value)
WinHttpObj.Send(postData)
ADODBObj := ComObjCreate("ADODB.Stream")
ADODBObj.Type := 1
ADODBObj.Open()
ADODBObj.Write(WinHttpObj.ResponseBody)
If !SaveFileAs {
urlSplitArray := StrSplit(UrlToFile, "/")
SaveFileAs := urlSplitArray[urlSplitArray.MaxIndex()]
}
ADODBObj.SaveToFile(SaveFileAs, Overwrite ? 2:1)
ADODBObj.Close()
}
例1
Download("http://ahkscript.org/download/1.1/AutoHotkey111402_Install.exe")
示例2
customHeaders := {"User-Agent": "Mozilla/5.0 (Windows NT 6.3; WOW64; rv:37.0) Gecko/20100101 Firefox/37.0"
,"Cache-Control": "max-age=0"
,"Cookie": "downloadtoken=b82416fdb23e421fb5a"}
Download("http://download.piriform.com/ccsetup410.exe","",True,customHeaders)
例3
Download("http://foo.bar/example.exe","example.exe",True,{"Cookie":"sessionid=abc123"},"POST","username=foo_bar&password=qwerty")
非常感謝您的努力。您對ahk網絡的貢獻非常受歡迎:) – Blauhirn 2015-04-06 10:41:48
我認爲你最近的帖子是非常有用的。請將它們發佈在ahkscript.org – vasili111 2015-04-05 19:24:30
謝謝。 :)你可以在那裏找到大部分。他們往往很難找到,因爲不是所有人都有專用線程,其中一些在autohotkey.com上,有些在ahkscript.org上。我將它們以「Bruttosozialprodukt」的名義發佈。例如:http://www.autohotkey.com/board/topic/101007-super-simple-download-with-progress-bar/#post_id_632780 – Forivin 2015-04-05 19:31:31
不久將會有autohotkey.com和ahkscript.org的合併。目前的autohotkey.com論壇將成爲只讀,而在ahkscript.org的論壇將轉到autohotkey.com並且處於活動狀態。你真的有很多好的和有用的腳本,並使它們易於搜索。我認爲最好在ahkscript.org爲每個腳本分別創建一個線程。 – vasili111 2015-04-06 07:20:51