在VBScript循环中发送GET请求失败

在VBScript循环中发送GET请求失败,vbscript,Vbscript,我正在设置一个客户端代码编写的VBScript,它使用HTTP GET请求探测服务器上的文本文件。客户端具有与每个HTTP响应文本相关的操作 在While True循环中执行此操作时,第一个请求返回正确的值。前面的所有请求返回与第一个响应相同的值 当HTTP请求在嗅探数据包时似乎没有离开客户端时,文件的内容会发生变化。 代码: 函数检查日志(url) Dim WshShell,http 设置WshShell=CreateObject(“WScript.Shell”) 设置http=CreateO

我正在设置一个客户端代码编写的VBScript,它使用HTTP GET请求探测服务器上的文本文件。客户端具有与每个HTTP响应文本相关的操作

在While True循环中执行此操作时,第一个请求返回正确的值。前面的所有请求返回与第一个响应相同的值

当HTTP请求在嗅探数据包时似乎没有离开客户端时,文件的内容会发生变化。 代码:

函数检查日志(url)
Dim WshShell,http
设置WshShell=CreateObject(“WScript.Shell”)
设置http=CreateObject(“Microsoft.XmlHttp”)
出错时继续下一步
http.open“GET”,url,False
http.send“”
checkLog=http.responseText
端函数
Dim lastVal=“2”
Dim logResult=“2”
做正确的事
logResult=checkLog(“http://10.0.0.3/log.txt")
如果logResult lastVal那么
如果logResult=“0”,则
“去功能1
MsgBox“已获取0”
lastVal=logResult
如果结束
如果logResult=“1”,则
“去Func 2
MsgBox“获得1”
lastVal=logResult
如果结束
如果结束
睡眠5
环
我希望每5秒发送一个数据包。
谢谢

禁用HTTP响应的缓存

Set req = CreateObject("Msxml2.XmlHttp")
On Error Resume Next
req.Open "GET", url, False
req.SetRequestHeader "Cache-Control", "no-cache"
req.Send ""
checkLog = req.ResponseText

循环没有失败,请求正在被缓存。通过请求头禁用缓存,或者通过向每次都唯一的查询字符串添加标记值(字符串格式
Now()
可以很好地工作,除非您每秒返回的请求超过一个)。在对HTTP的缓存机制做了一点研究后,使用“无缓存”发送请求标头将仅在支持使用“无缓存”标头进行响应的服务器上工作。python http.server(也称为SimpleHTTPServer)不支持它。为了使其支持引用此链接:。@elonmuskor Web服务器通常应该这样做。而Python的SimpleHTTPServer不支持开箱即用与您的问题有什么关系?我尝试了您给我的解决方案,但仍然不适用于我。然后我发现这是因为我使用了python的SimpleHTTPServer,它不支持它。我只是想对像我这样的未来白痴说清楚:)
Set req = CreateObject("Msxml2.XmlHttp")
On Error Resume Next
req.Open "GET", url, False
req.SetRequestHeader "Cache-Control", "no-cache"
req.Send ""
checkLog = req.ResponseText