Download URL下载文件的替代方案

Download URL下载文件的替代方案,download,autohotkey,Download,Autohotkey,UrlDownloadToFile是AutoHotkey中的一个不错的命令,在大多数情况下都可以正常工作,但有时下载机制对它来说太复杂了。例如,如果下载需要设置特定的用户代理,或者如果下载需要cookie,甚至可能需要密码 所以问题是: 是否有更高级的下载功能,可以处理上述所有内容?我很久以前写过这篇文章,并认为将其封装在函数中并发布在这里是一个不错的主意: Download(UrlToFile,SaveFileAs:="",Overwrite:=True,headers:="",method:

UrlDownloadToFile是AutoHotkey中的一个不错的命令,在大多数情况下都可以正常工作,但有时下载机制对它来说太复杂了。例如,如果下载需要设置特定的用户代理,或者如果下载需要cookie,甚至可能需要密码

所以问题是:

是否有更高级的下载功能,可以处理上述所有内容?

我很久以前写过这篇文章,并认为将其封装在函数中并发布在这里是一个不错的主意:

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")

我认为你最近的帖子非常有用。请将它们发布到ahkscript.org,谢谢。:)你已经可以在那里找到大部分了。它们往往很难找到,因为它们并非都有专用线程,有些在autohotkey.com上,有些在ahkscript.org上。我以“BrutosozialProdukt”的名义发布它们。例如:autohotkey.com和ahkscript.org不久将合并。当前autohotkey.com论坛将变为只读,位于ahkscript.org的论坛将移至autohotkey.com并处于活动状态。你有很多好的有用的脚本,为了让它们更容易搜索,我认为最好在ahkscript.org上为每个脚本创建单独的线程。感谢你的努力。非常欢迎您对ahk网络的贡献:)