使用WinHttp.WinHttpRequest.5.1下载进度

时间:2016-08-01 12:13:59

标签: vba vbscript winhttp winhttprequest

有没有办法找出收到了多少GET请求?我不能Len(.ResponseBody)直到它完成,所以这是不可能的。

1 个答案:

答案 0 :(得分:0)

我正在研究如何绑定IWinHttpRequestEventsOnResponseDataAvailable事件正是您所需要的。它可以为您提供数据。然后,您可以随心所欲地处理它。

不幸的是,尝试绑定到该事件接口会导致VBScript与C0000005 GPF崩溃。我还发现它在different language中崩溃的引用。所以,我不能说这是否适用于VBA或VB6或任何其他语言。详细信息将在以下问题中讨论。

WScript.CreateObject crashes Windows Scripting Host when event handler prefix is specified for WinHTTPRequest

另一种方法是切换到Msxml2.XMLHTTPMsxml2.ServerXMLHTTP。这些对象带有一个名为readyState的属性,可以让您了解下载的内容。它不会给你当前下载的字节数,但它是一些东西。

此外,您可以捕获onReadyStateChange事件,该事件会在对象的readyState发生更改时通知您。微软甚至提供sample code来捕获事件。