VBS Microsoft.XMLHTTP статус - PullRequest
       14

VBS Microsoft.XMLHTTP статус

6 голосов
/ 01 октября 2010

Почему следующий код выдает ошибку 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

Ответы [ 2 ]

11 голосов
/ 01 октября 2010

Во-первых, вы должны изменить

Http.Open "GET", site, True 

до

Http.Open "GET", site, False

потому что вы не можете использовать Http.Status сразу после Http.Send, если вызов асинхронный.

Кроме того, вы должны использовать

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

вместо

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

потому что обычный объект XMLHTTP имеет проблемы с перенаправленными веб-сайтами (www.google.com обычно перенаправляет вас на другой сайт).

1 голос
/ 28 июня 2018
Const ForWriting = 2

strURL="http://asithayomal.1apps.com"
Set objHTTP = CreateObject("MSXML2.XMLHTTP") 
Call objHTTP.Open("GET", strURL, FALSE) 
objHTTP.Send

msgbox objHTTP.ResponseText
...