【问题标题】:Download progress with WinHttp.WinHttpRequest.5.1WinHttp.WinHttpRequest.5.1 下载进度
【发布时间】:2016-08-01 12:13:58
【问题描述】:

有没有办法查明收到了多少 GET 请求?在它完成之前我不能做Len(.ResponseBody),所以这是不可能的。

【问题讨论】:

    标签: vba vbscript winhttp winhttprequest


    【解决方案1】:

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

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

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


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

    此外,您还可以捕获onReadyStateChange 事件,当对象上的readyState 发生更改时,它会通知您。微软甚至提供了sample code 用于捕获事件。

    【讨论】:

      猜你喜欢
      • 2022-09-19
      • 1970-01-01
      • 2016-06-13
      • 2012-01-22
      • 1970-01-01
      • 2020-02-03
      • 2013-12-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多