- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
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")
关于download - UrlDownloadToFile 的替代方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29460945/
在 VBA 中使用 URLDownloadToFile,我正在尝试下载文件。问题是正在下载一个空白文件。知道为什么数据丢失吗? Option Explicit Private Declare Func
UrlDownloadToFile 是 AutoHotkey 中的一个很好的命令,大多数时候工作得很好,但有时下载机制对它来说太复杂了。例如,如果下载需要设置特定的用户代理,或者下载需要 cookie
我正在尝试实现将随机文件从网络保存到 .exe 所在的同一目录。问题是我只在指定绝对目录时才让它工作。 我最后尝试的代码是: string home; home = system
我正在研究一些用作“下载管理器”的旧 ATL OCX。它使用 URLDownloadToFile API 下载文件。 以前,它作为 ActiveX 托管在网页上,因此如果服务器需要身份验证,它由 IE
我正在尝试在 Windows 命令行中执行单行文件下载,而不依赖于 WGET 等外部工具,甚至不编写 PowerShell 或 VBScripts 脚本。 我试着跑 c:\> RunDLL32.exe
我正在使用 URLDownloadToFile() 将图像从 Web 服务器下载到我桌面上的目录。如果我不想将图像保存到磁盘,而是想将它们读入内存(如字节数组或 base64 字符串等),是否有类似于
如何在不将此页面保存到磁盘的情况下将网页下载为字符串 C++? URLDownloadToFile MSDN function仅将页面保存到磁盘。 最佳答案 您是否查找了其中提到的其他 URLXXX
我是 c++ 的新手,尝试编写一个更新函数。 使用 URLDownloadToFile 下载没有问题,但如果我将 url 更改为无效的 url,它仍然返回 S_OK ...如何检查下载是否成功? #i
URLDownloadToFile 函数是否有其他替代方法?我无法从证书无效的 HTTPS 服务器下载任何内容。是否有任何通用的 HTTP 客户端可用于从具有无效证书的 HTTPS 服务器下载文件?这
我正在使用 URLDownloadToFile 从网站检索文件。后续调用返回原始文件而不是更新版本。我假设它正在检索缓存版本。 最佳答案 在调用 URLDownloadToFile 之前使用相同的 U
我正在寻找用 C++(在 Windows 上)下载文件的最简单方法。URLDownloadToFile 听起来不错,不需要我使用 curl 或其他我不需要的胖库 - 这个功能有什么要求?它将在哪个 W
如何异步使用此 API URLDownloadToFile?我需要通过 SendMessage 向客户端窗口显示下载进度,这无法完成,因为 API 似乎是同步的,并且在下载完成之前它永远不会发送 On
我想制作从互联网下载页面并对其进行一些解析的程序。第二部分很简单,问题是第一。 我想使用 URLDownloadToFile() 函数。但默认情况下它不会等待完成下载。 MSDN 说最后一个参数是一种
这个问题在这里已经有了答案: How can I prevent URLDownloadToFile from retrieving from the cache? (4 个答案) 关闭 7 年前。
我尝试使用 VBA 从 Excel 中的服务器下载文件。这在使用 HTTP 时工作正常,但在使用 HTTPS 时不起作用。 我可以在 Internet Explorer 中访问这两个地址 (HTTP/
我正在尝试使用 Delphi XE2 从互联网下载文件,但没有任何反应。这是我的代码: uses URLMon; ... procedure TForm1.Button1Click(Sender: T
如何在 Delphi 中实现以下 Windows 函数? HRESULT URLDownloadToFile( LPUNKNOWN pCaller, LPCTSTR szURL,
我有一个 C++ 应用程序(类似于 this one),它使用 URLDownloadToFile 方法(在 urlmon.dll 中定义)下载文件。在 IE8 之前,可以通过在进度回调中返回 E_A
#include "stdafx.h" #include #include #include #include #include #include #pragma comment(lib,
我正在为自己制作一张 Excel 表格来跟踪我的投资。我有这个证券交易所网站的链接,该链接有一个 zip 文件,其中包含最后交易日交易数据的 CSV 文件。 zip 文件的名称是动态的,格式为“eq_
我是一名优秀的程序员,十分优秀!