Vbscript 如何处理XMLHTTP请求中未解析的服务器地址?

Vbscript 如何处理XMLHTTP请求中未解析的服务器地址?,vbscript,msxml,Vbscript,Msxml,我使用以下代码检查RSS url是否在5秒钟内响应,这样我就可以使用RSS提要,但是当无法解析目标url时,尝试打开url会导致错误。除了waitForResponse之外,我还需要什么来处理这种情况 Set http = Server.CreateObject("MSXML2.ServerXMLHTTP") http.open "POST", "https://persiadigest.com/fa/rss/8", T

我使用以下代码检查RSS url是否在5秒钟内响应,这样我就可以使用RSS提要,但是当无法解析目标url时,尝试打开url会导致错误。除了
waitForResponse
之外,我还需要什么来处理这种情况

    Set http = Server.CreateObject("MSXML2.ServerXMLHTTP")
    http.open "POST", "https://persiadigest.com/fa/rss/8", True
    http.send
    
    If http.waitForResponse(5) Then
        body=http.responsetext
    Else
        response.write "Target url is not responding"
    End If
    Set http = Nothing
错误详细信息:

msxml3.dll错误“80072ee7”无法找到服务器名称或地址 决心


请尝试此示例,并告诉我结果:

Option Explicit
Dim Title : Title = "Get RSS FEED"
Dim ArrURL : ArrURL = Array("https://persiadigest.com/fa/rss/8","http://khabarfoori.com/rss/mm")
Dim URL 
For Each URL in ArrURL
    If CheckURL(URL) = "200"  Then 
        MsgBox chr(34) & URL & chr(34) & " ==> is active"& vbCrLF &_
        "Status : " & CheckURL(URL),vbInformation,Title 
        MsgBox GetDataFromURL(URL,"GET",""),vbInformation,Title
    Else 
        MsgBox chr(34) & URL & chr(34) & " ==> is inactive" & vbCrLF &_
        "Status : " & CheckURL(URL),vbCritical,Title 
    End if
Next
'---------------------------------------------------------------------------
Function GetDataFromURL(strURL, strMethod, strPostData)
    Dim lngTimeout
    Dim strUserAgentString
    Dim intSslErrorIgnoreFlags
    Dim blnEnableRedirects
    Dim blnEnableHttpsToHttpRedirects
    Dim strHostOverride
    Dim strLogin
    Dim strPassword
    Dim strResponseText
    Dim objWinHttp
    lngTimeout = 59000
    strUserAgentString = "http_requester/0.1"
    intSslErrorIgnoreFlags = 13056 ' 13056: ignore all err, 0: accept no err
    blnEnableRedirects = True
    blnEnableHttpsToHttpRedirects = True
    strHostOverride = ""
    strLogin = ""
    strPassword = ""
    Set objWinHttp = CreateObject("WinHttp.WinHttpRequest.5.1")
    objWinHttp.SetTimeouts lngTimeout, lngTimeout, lngTimeout, lngTimeout
    objWinHttp.Open strMethod, strURL
    If strMethod = "POST" Then
        objWinHttp.setRequestHeader "Content-type", _
        "application/x-www-form-urlencoded"
    End If
    If strHostOverride <> "" Then
        objWinHttp.SetRequestHeader "Host", strHostOverride
    End If
    objWinHttp.Option(0) = strUserAgentString
    objWinHttp.Option(4) = intSslErrorIgnoreFlags
    objWinHttp.Option(6) = blnEnableRedirects
    objWinHttp.Option(12) = blnEnableHttpsToHttpRedirects
    If (strLogin <> "") And (strPassword <> "") Then
        objWinHttp.SetCredentials strLogin, strPassword, 0
    End If
    On Error Resume Next
    objWinHttp.Send(strPostData)
    If Err.Number = 0 Then
        If objWinHttp.Status = "200" Then
            GetDataFromURL = objWinHttp.ResponseText
        Else
            GetDataFromURL = "HTTP " & objWinHttp.Status & " " & _
            objWinHttp.StatusText
        End If
    Else
        GetDataFromURL = "Error " & Err.Number & " " & Err.Source & " " & _
        Err.Description
    End If
    On Error GoTo 0
    Set objWinHttp = Nothing
End Function 
'---------------------------------------------------------------------------
Function CheckURL(vURL)
    On Error Resume Next
    Dim xhr
    Set xhr = CreateObject("MSXML2.ServerXMLHTTP.3.0")
    xhr.Open "HEAD", vURL, false
    xhr.Send
    If Err.Number = 0 Then
        'MsgBox xhr.status
        CheckURL = xhr.status
    Else
        CheckURL = Err.Description
    End If
End Function
'---------------------------------------------------------------------------
选项显式
Dim Title:Title=“获取RSS源”
Dim ArrURL:ArrURL=数组(“https://persiadigest.com/fa/rss/8","http://khabarfoori.com/rss/mm")
暗URL
对于ArrURL中的每个URL
如果CheckURL(URL)=“200”,则
MsgBox chr(34)&URL&chr(34)&“==>处于活动状态”&vbCrLF&_
状态:&检查URL(URL)、信息、标题
MsgBox GetDataFromURL(URL,“GET”和“”),vbInformation,Title
其他的
MsgBox chr(34)&URL&chr(34)&“==>处于非活动状态”&vbCrLF&_
“状态:”&检查URL(URL)、vbCritical、标题
如果结束
下一个
'---------------------------------------------------------------------------
函数GetDataFromURL(strURL、strMethod、strPostData)
变暗时间
暗弦
暗淡的intSslErrorIgnoreFlags
Dim BlneEnabledRedirects
Dim blnEnableHttpsToHttpRedirects
暗色斜纹夜蛾
模糊结构
模糊字串
暗响应文本
Dim objWinHttp
lngTimeout=59000
strusAgentString=“http\u请求者/0.1”
intSslErrorIgnoreFlags=13056'13056:忽略所有错误,0:接受无错误
blnEnableRedirects=True
blnEnableHttpsToHttpRedirects=True
strHostOverride=“”
strLogin=“”
strPassword=“”
设置objWinHttp=CreateObject(“WinHttp.WinHttpRequest.5.1”)
objWinHttp.SetTimeouts lngTimeout,lngTimeout,lngTimeout,lngTimeout
objWinHttp.openstrmethod,strURL
如果strMethod=“POST”,则
objWinHttp.setRequestHeader“内容类型”_
“应用程序/x-www-form-urlencoded”
如果结束
如果是“strHostOverride”,则
objWinHttp.SetRequestHeader“主机”,strHostOverride
如果结束
objWinHttp.Option(0)=strUserAgentString
objWinHttp.Option(4)=intSslErrorIgnoreFlags
选项(6)=blnEnableRedirects
Option(12)=blnEnableHttpsToHttpRedirects
如果是(strLogin“”)和(strPassword“”),则
objWinHttp.SetCredentials strLogin,strPassword,0
如果结束
出错时继续下一步
发送(strPostData)
如果Err.Number=0,则
如果objWinHttp.Status=“200”,则
GetDataFromURL=objWinHttp.ResponseText
其他的
GetDataFromURL=“HTTP”&objWinHttp.Status&”_
objWinHttp.StatusText
如果结束
其他的
GetDataFromURL=“Error”&Err.Number&&Err.Source&&_
错误描述
如果结束
错误转到0
设置objWinHttp=Nothing
端函数
'---------------------------------------------------------------------------
函数检查URL(vURL)
出错时继续下一步
暗xhr
设置xhr=CreateObject(“MSXML2.ServerXMLHTTP.3.0”)
xhr.打开“头部”,vURL,false
发送
如果Err.Number=0,则
'MsgBox xhr.status
CheckURL=xhr.status
其他的
CheckURL=错误描述
如果结束
端函数
'---------------------------------------------------------------------------

一个忽略错误的简单函数可以工作

函数WaitIgnoreError(ByRef requestObject,超时)
出错时继续下一步
WaitIgnoreError=requestObject.WaitForResponse(超时)
端函数
用法:

如果WaitIgnoreError(http,5)那么
body=http.responsetext
其他的
response.write“目标url没有响应”
如果结束