UrlDownloadToVar()函数-下载到变量

分享一段从AHK中文论坛淘来的下载函数:UrlDownloadToVar():

UrlDownloadToVar(URL,Timeout=-1)    ;使用内置的UrlDownloadToFile命令,在多线程情况下,很容易出现线程退出了,文件却没正常下载的情况。在单进程情况下,很容易卡死在“牛杂网​”上。速度亦远慢于此函数
{
    ComObjError(0)
    WebRequest := ComObjCreate("WinHttp.WinHttpRequest.5.1")
    WebRequest.Open("GET", URL, true)   ;true为异步获取,默认是false,卡顿的根源!
    WebRequest.Send()
    WebRequest.WaitForResponse(Timeout) ;修改为异步获取后,平均获取网页速度大幅加快,故不再采用超时(Timeout=-1)。在访问ResponseText之前调用WaitForResponse方法以确保获取的是完整的响应
    Return WebRequest.ResponseText()
            , ComObjError(0)
}

函数特点(作者自述):

此函数与内置命令UrlDownloadToFile的区别有以下几点
1.直接下载到变量,没有临时文件
2.下载速度快过内置命令,大概快了100%
3.支持TIMEOUT,N秒没有下载完成可以直接返回,不必死等
4.内置命令执行时,整个AHK程序都是卡顿状态,此函数不会
5.内置命令下载一些诡异网站时,会概率性让进程或线程卡死,不是假死,是真的死掉。此函数不会

论坛地址:http://ahk8.com/Thread-UrlDownloadToVar-%E4%B8%8B%E8%BD%BD%E5%88%B0%E5%8F%98%E9%87%8F-%E4%B8%8D%E4%BC%9A%E5%8D%A1-%E4%B8%8D%E4%BC%9A%E6%AD%BB-%E6%94%AF%E6%8C%81%E8%B6%85%E6%97%B6-%E9%80%9F%E5%BA%A6%E5%BF%AB

转载于:https://www.cnblogs.com/easysky/p/3453738.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值