预先感谢您收到的任何帮助。
我想让我们的客户端在文本字段中输入 URL,然后检查该 URL 是否存在并有效。
我想检查 3 种可能的结果:
状态 200 - 正常,
状态 500 - 服务器错误,
或者状态为 404 - 未找到页面。
在 ASP classic 中执行以下代码时,我应该得到 404,但得到的状态代码是 12007。这是因为它找不到 Web 服务器来返回 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
或者这里出了什么问题。除了上述标准之外,我可能会看到哪些状态代码。
12007 是一个 Windows HTTP 错误,这意味着名称尚未解析。如果主机名无法解析为 IP 地址或无法与该 IP 地址建立连接,则您无法获得 200、404、500 或任何此类信息。在这些情况下,您将收到 12000 秒范围内的错误代码,它们不是 HTTP 状态代码,而是 Windows 异常编号。
看到这个list http://msdn.microsoft.com/en-us/library/aa383770%28VS.85%29.aspx有关这些例外编号的列表。
顺便说一句,XMLHTTP 不是在 ASP 中使用的安全项目对象。另外,为什么要使用 POST?这是我要使用的代码:-
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,而无需实际下载可能很大的实体主体。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)