在vbscript中测试HTTP响应

在vbscript中测试HTTP响应,http,vbscript,timeout,Http,Vbscript,Timeout,我需要测试web url的响应时间,看看它是否得到了缓慢的响应。我从一个教程网站上得到了这个(不记得是哪一个),但它并没有完全满足我的要求: On Error Resume Next Set XMLHttp = CreateObject("MSXML2.ServerXMLHTTP") xmlhttp.open "GET", "http://website.url.com" , 0 xmlhttp.send "" If Err.Number < 0 OR Err.Number >

我需要测试web url的响应时间,看看它是否得到了缓慢的响应。我从一个教程网站上得到了这个(不记得是哪一个),但它并没有完全满足我的要求:

On Error Resume Next 
Set XMLHttp = CreateObject("MSXML2.ServerXMLHTTP") 
xmlhttp.open "GET", "http://website.url.com" , 0 
xmlhttp.send "" 
If Err.Number < 0 OR Err.Number > 0 Then 
  Dim objShell
  Set objShell = WScript.CreateObject ("WScript.shell")
  MsgBox "TimeOut"
  Set objShell = Nothing
  WScript.Quit 
Else
  MsgBox "OK"
End If 

Set xmlhttp = Nothing
出错时继续下一步
设置XMLHttp=CreateObject(“MSXML2.ServerXMLHTTP”)
xmlhttp.open“获取”http://website.url.com" , 0 
xmlhttp.send“”
如果错误号<0或错误号>0,则
昏暗的奥布舍尔
设置objShell=WScript.CreateObject(“WScript.shell”)
MsgBox“超时”
Set objShell=Nothing
WScript.Quit
其他的
MsgBox“OK”
如果结束
设置xmlhttp=Nothing

此脚本仅测试站点是否超时。我需要更详细的信息,例如即使没有超时,响应时间有多长等。

好的,我找到了解决方案:

Dim strHost

' Put your server here
strHost = "localhost"

if Ping(strHost) = True then
    Wscript.Echo "Host " & strHost & " contacted"
Else
    Wscript.Echo "Host " & strHost & " could not be contacted"
end if

Function Ping(strHost)

    dim objPing, objRetStatus

    set objPing = GetObject("winmgmts:{impersonationLevel=impersonate}").ExecQuery _
      ("select * from Win32_PingStatus where address = '" & strHost & "'")

    for each objRetStatus in objPing
        if IsNull(objRetStatus.StatusCode) or objRetStatus.StatusCode<>0 then
        Ping = False
            'WScript.Echo "Status code is " & objRetStatus.StatusCode
        else
            Ping = True
            'Wscript.Echo "Bytes = " & vbTab & objRetStatus.BufferSize
            Wscript.Echo "Time (ms) = " & vbTab & objRetStatus.ResponseTime
            'Wscript.Echo "TTL (s) = " & vbTab & objRetStatus.ResponseTimeToLive
        end if
    next
End Function 
Dim strHost
'将服务器放在这里
strHost=“localhost”
如果Ping(strHost)=True,则
Echo“主机”&strHost&“已联系”
其他的
无法联系Wscript.Echo“主机”和strHost&”
如果结束
函数Ping(strHost)
dim objPing,objRetStatus
设置objPing=GetObject(“winmgmts:{impersonationLevel=impersonate}”).ExecQuery_
(“从Win32中选择*地址=”&strHost&“”)
对于objRetStatus中的每个objRetStatus
如果IsNull(objRetStatus.StatusCode)或objRetStatus.StatusCode为0,则
Ping=假
“WScript.Echo”状态代码为“&objRetStatus.StatusCode”
其他的
Ping=真
'Wscript.Echo“Bytes=“&vbTab&objRetStatus.BufferSize
Wscript.Echo“时间(毫秒)=”&vbTab&objRetStatus.ResponseTime
'Wscript.Echo“TTL=”&vbTab&objRetStatus.ResponseTimeToLive
如果结束
下一个
端函数

所有学分都会转到这个网站,它的作者:

好的,我找到了解决方案:

Dim strHost

' Put your server here
strHost = "localhost"

if Ping(strHost) = True then
    Wscript.Echo "Host " & strHost & " contacted"
Else
    Wscript.Echo "Host " & strHost & " could not be contacted"
end if

Function Ping(strHost)

    dim objPing, objRetStatus

    set objPing = GetObject("winmgmts:{impersonationLevel=impersonate}").ExecQuery _
      ("select * from Win32_PingStatus where address = '" & strHost & "'")

    for each objRetStatus in objPing
        if IsNull(objRetStatus.StatusCode) or objRetStatus.StatusCode<>0 then
        Ping = False
            'WScript.Echo "Status code is " & objRetStatus.StatusCode
        else
            Ping = True
            'Wscript.Echo "Bytes = " & vbTab & objRetStatus.BufferSize
            Wscript.Echo "Time (ms) = " & vbTab & objRetStatus.ResponseTime
            'Wscript.Echo "TTL (s) = " & vbTab & objRetStatus.ResponseTimeToLive
        end if
    next
End Function 
Dim strHost
'将服务器放在这里
strHost=“localhost”
如果Ping(strHost)=True,则
Echo“主机”&strHost&“已联系”
其他的
无法联系Wscript.Echo“主机”和strHost&”
如果结束
函数Ping(strHost)
dim objPing,objRetStatus
设置objPing=GetObject(“winmgmts:{impersonationLevel=impersonate}”).ExecQuery_
(“从Win32中选择*地址=”&strHost&“”)
对于objRetStatus中的每个objRetStatus
如果IsNull(objRetStatus.StatusCode)或objRetStatus.StatusCode为0,则
Ping=假
“WScript.Echo”状态代码为“&objRetStatus.StatusCode”
其他的
Ping=真
'Wscript.Echo“Bytes=“&vbTab&objRetStatus.BufferSize
Wscript.Echo“时间(毫秒)=”&vbTab&objRetStatus.ResponseTime
'Wscript.Echo“TTL=”&vbTab&objRetStatus.ResponseTimeToLive
如果结束
下一个
端函数
所有学分都将转到本网站及其作者: