我有一个使用 ServerXMLHTTP 对象发出大量 GET 请求的 VBS:
SET xmlhttp = CreateObject("MSXML2.ServerXMLHTTP")
xmlhttp.setTimeouts 5000, 5000, 10000, 120000 'ms - resolve, connect, send, receive
...
' Now do the following for lots of different GetURLs:
xmlhttp.open "GET", GetURL, false
xmlhttp.setRequestHeader "Content-type","text/xml"
xmlhttp.setRequestHeader "Accept","text/csv"
xmlhttp.send "{}"
WScript.Echo "Readystate = " & xmlhttp.readyState & " at " & Now()
IF xmlhttp.readyState <> 4 THEN
xmlhttp.waitForResponse 1
END IF
WScript.Echo "Readystate = " & xmlhttp.readyState & " at " & Now()
我发现脚本永远不会通过的情况,xmlhttp.send
除非我异步运行它(即,使用xmlhttp.open "GET", GetURL, true
)。
我的理解是,它应该根据 setTimeouts 超时,并且即使在同步运行时也会继续前进。那么可能会发生什么?(根据到目前为止的阅读,这听起来像是“很多”,但关于这方面的文档充其量是模糊的......)