注册 登录
编程论坛 VFP论坛

请问怎么检测网址是否有效?

shonken 发布于 2023-08-07 18:16, 868 次点击
失效的网址:http://www.

程序代码:

  lcURL="http://www./"
loHttp = CREATEOBJECT("WinHttp.WinHttpRequest.5.1")
loHttp.Open("GET", lcURL, .F.)
loHttp.SetRequestHeader("User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)")
loHttp.Send()

IF loHttp.Status = 200
    ? "网址可以访问"
ELSE
    ? "网址无法访问"
ENDIF


会出现OLE错误,有什么办法?
6 回复
#2
yiyanxiyin2023-08-07 18:23
怀疑控件不正常, 访问正常的网站试试呢
#3
csyx2023-08-07 18:31
加个 try 不行吗?
#4
csyx2023-08-07 18:32
lcURL="http://www.
loHttp = CREATEOBJECT("WinHttp.WinHttpRequest.5.1")
loHttp.Open("GET", lcURL, .F.)
Try
    loHttp.Send()
    oErr = Null
Catch to oErr
EndTry
IF IsNull(oErr) and loHttp.Status = 200
    ? "网址可以访问"
ELSE
    ? "网址无法访问"
    ? oErr.Message
ENDIF
#5
shonken2023-08-07 18:56
以下是引用csyx在2023-8-7 18:32:22的发言:

lcURL="http://www.
loHttp = CREATEOBJECT("WinHttp.WinHttpRequest.5.1")
loHttp.Open("GET", lcURL, .F.)
Try
    loHttp.Send()
    oErr = Null
Catch to oErr
EndTry
IF IsNull(oErr) and loHttp.Status = 200
    ? "网址可以访问"
ELSE
    ? "网址无法访问"
    ? oErr.Message
ENDIF

可以
呃...原来我的处理错误语句放错位置了
#6
吹水佬2023-08-07 20:18
try.....endtry 对OLE的0错误有可能处理不了
OLE异常处理用 ON ERROR 好点。


ON ERROR OnError()

sysError = .f.
lcURL="http://www.
loHttp = CREATEOBJECT("WinHttp.WinHttpRequest.5.1")
loHttp.Open("GET", lcURL, .F.)
loHttp.SetRequestHeader("User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)")
loHttp.Send()
if sysError
    ? "异常"
else
    ? "正常"
endif
return

FUNCTION OnError()
    sysError = .t.
    RETURN
ENDFUNC
#7
schtg2023-08-08 06:22
各位,学习啦,谢谢!
1