2016-08-01 17 views

Antwort

0

Ich untersuchte, wie Sie an IWinHttpRequestEvents binden können. Das Ereignis OnResponseDataAvailable ist genau das, was Sie brauchen. Es würde Ihnen die Daten geben, wie sie hereinkamen. Dann könnten Sie damit umgehen, wie Sie wollen.

Leider führt der Versuch, an diese Ereignisschnittstelle zu binden, zum Absturz von VBScript mit einem C0000005 GPF. Ich fand auch einen Hinweis darauf, dass er in einer different language abstürzte. Also kann ich nicht sagen, ob das in VBA oder VB6 oder einer anderen Sprache funktionieren würde. Details werden in der folgenden Frage diskutiert.

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


Die Alternative ist, zu Msxml2.XMLHTTPMsxml2.ServerXMLHTTP oder zu wechseln. Diese Objekte werden mit einer Eigenschaft namens readyState geliefert, die Ihnen eine Vorstellung davon gibt, was mit dem Download geschieht. Es gibt Ihnen nicht die aktuelle Anzahl der heruntergeladenen Bytes, aber es ist etwas.

Darüber hinaus können Sie das Ereignis onReadyStateChange Trap, die Sie wissen lassen, wenn die readyState auf dem Objekt geändert hat. Microsoft hat sogar sample code zum Abfangen des Ereignisses bereitgestellt.