MSXML2.XMLHTTP请求,以验证在ASP Classic中输入的URL [英] MSXML2.XMLHTTP Request to validate entered URL in ASP Classic

查看:299
本文介绍了MSXML2.XMLHTTP请求,以验证在ASP Classic中输入的URL的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在此先感谢您提供的帮助.

Thanks in advance for any help received.

我想允许我们的客户在一个文本字段中输入一个URL,然后检查该URL是否存在并且可以正常工作.

I want to allow our client to enter a URL into a text field which then checks whether the URL exists and works.

我要检查3种可能的结果: 状态为200-确定, 状态500-服务器错误, 或状态为404-找不到页面.

There are 3 possible outcomes I want to check for: A status of 200 - OK, A status of 500 - Server Error, Or a status of 404 - page not found.

在ASP Classic中执行以下代码时,我应该得到404时得到的状态代码为12007.这是因为找不到网络服务器来返回404的代码吗?

When executing the following code in ASP classic I get a status code of 12007 when I should be getting 404. Is this because it can't find a webserver to return a code of 404?

Function CheckURL(vURL)
    ON ERROR RESUME NEXT
    Set oXML=Server.CreateObject("MSXML2.XMLHTTP") : oXML.Open "POST",vURL,false : oXML.Send()
    CheckURL = oXML.status
    Set oXML = nothing
End Function

或者这里有些不对劲.除了上述标准外,我可能还会看到哪些状态代码.

Or is something amiss here. What status codes am I likely to see other than the standard mentioned above.

推荐答案

12007是Windows HTTP错误,表示名称尚未解析.如果无法将主机名解析为IP地址或无法建立与该IP地址的连接,则无法获得200、404、500或任何此类名称.在这些情况下,您将获得12000s范围内的错误代码,这些错误代码不是HTTP状态代码,而是Windows异常编号.

The 12007 is a Windows HTTP error which means name hasn't been resolved. You can't get a 200, 404, 500 or any such thing if the host name can't be resolved to an IP address or a connection can't be established to that IP address. In these cases you will get error codes in the 12000s range which aren't HTTP status codes but are windows exception numbers.

请参阅此列表这些异常编号的列表.

See this list for a list of these exception numbers.

顺便说一句,XMLHTTP不是在ASP中使用的安全项目对象.另外,为什么要使用POST?这是我要使用的代码:-

BTW, XMLHTTP is not a safe item object to use in ASP. Also why are you using a POST? This is the code I would use:-

Function CheckURL(vURL)
    On Error Resume Next
    Set xhr = CreateObject("MSXML2.ServerXMLHTTP.3.0")
    xhr.Open "HEAD", vURL, false
    xhr.Send
    CheckURL = xhr.status
End Function

使用HEAD可以测试URL,而无需实际下载潜在的大型实体正文.

Using HEAD allows you test the URL without actually downloading a potentially large entity body.

这篇关于MSXML2.XMLHTTP请求,以验证在ASP Classic中输入的URL的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆