再次调用时,VBScript MSXML2.XMLHTTP.responsetext不会更新

时间:2013-08-06 05:26:09

标签: vbscript responsetext

我正在尝试开发一个脚本,通过服务器验证自身,然后循环从服务器获取新数据。

Bellow是我使用

的代码
Set s = CreateObject("MSXML2.XMLHTTP")

'Server authentication
s.open "GET", "fooAPI", False
s.send

do

    'Server data
    s.open "GET", "barAPI", False
    s.send
    Wscript.echo s.responseText
    WScript.Sleep 5000
loop

第一次运行时,我得到了正确的最新信息,但一旦循环,就会从第一次运行中获得相同的信息

我能找到的最接近的是this但是没有得到答案。

我计划在python中完成这一切,但我被拒绝了我的请求,因为这是一个"安全风险"安装了python。

任何建议都将不胜感激

2 个答案:

答案 0 :(得分:3)

这是因为缓存了响应。更改IE的设置,使其每次都获取一个新的副本,或者发送一些未用于欺骗IE的随机参数,使其认为它是一个不同的“页面”。如果您控制服务器,则可以设置HTTP标头以强制客户端(如果它符合标准),它始终获取内容。在这里查看更多信息: VBScript: Disable caching of response from server to HTTP GET URL request

(我知道这些信息大部分都是Sandeep的链接。但是,在这里使用它更好,可能会消失。)

答案 1 :(得分:0)

也许这可以帮助您重置响应:

Set s = CreateObject("MSXML2.XMLHTTP")
'Server authentication
s.open "GET", "fooAPI", False
s.send
do
    'Server data
    s.open "GET", "barAPI", False
    s.send
    Wscript.echo s.responseText
    WScript.Sleep 5000
    set s = nothing
loop