vbscript - VBS Microsoft.XMLHTTP 状态

标签 vbscript status xmlhttprequest

为什么下面的代码运行时会出现80004005错误?我试图每 10 秒获取几个站点的状态...(给出的只是示例)。

'http://www.sebsworld.net/information/?page=VBScript-URL
'http://www.paulsadowski.com/wsh/xmlhttp.htm

'the array of sites
sites = Array("http://www.google.com/","http://en.wikipedia.org/wiki/Main_Page")

While(True)
    For Each site In sites

        'Get site status
        Set Http = WScript.CreateObject("Microsoft.XMLHTTP")
        Http.Open "GET", site, True
        Http.Send

        If(Http.Status <> 200) Then 'site isn't 200
            MsgBox "The site at " & vbNewLine & site & vbNewLine & "has status: " & Http.Status
        End If
    Next

    WScript.Sleep(10)'Sleep 10 seconds
Wend

最佳答案

首先,你必须改变

Http.Open "GET", site, True 

Http.Open "GET", site, False

因为如果调用是异步的,则无法在 Http.Send 之后立即使用 Http.Status

此外,您应该使用

Set Http = WScript.CreateObject("MSXML2.ServerXMLHTTP") 

而不是

Set Http = WScript.CreateObject("Microsoft.XMLHTTP")

因为普通的 XMLHTTP 对象在重定向网站时存在问题(www.google.com 通常会将您重定向到另一个网站)。

关于vbscript - VBS Microsoft.XMLHTTP 状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3836130/

相关文章:

vbscript - 我怎样才能使用两种模式并使用 VBScript 在同一个文件中显示?

android - 如何在成功响应 Volley Android 中获取状态代码

php - 按位运算符的 MySQL 状态交换

javascript - 如何使用 XMLHttpRequest 和 asp.net MVC 将大型 blob 发布到服务器?

vbscript - 使用相同的脚本关闭由vbs脚本打开的程序

asp-classic - VBScript (ASP) 服务器组件驻留在哪里?

javascript - 跨域JSON请求?

javascript - iPhone dashcode xmlhttprequest 无响应

windows - 用于删除某些文件的 VB 脚本,如果找到文件,则将其他文件复制到目录

stream - Facebook FQL : Difference between status table and stream table?