用microsoft.xmlhttp对象,open不存在的url,send的时候出错[已解决]
本帖最后由 oneyicn 于 2010-10-13 15:08 编辑先看代码
Dim $sUrl="http://www.baidus.com/"
$oHTTP = ObjCreate("microsoft.xmlhttp")
$aa=$oHTTP.Open("GET",$sUrl,False)
;~ ConsoleWrite($oHTTP.onreadystatechange & @CRLF);xmlhttp.readyState
$oHTTP.Send("");发送
$HTMLSource = $oHTTP.Responsetext
MsgBox(0,"",$HTMLSource)如果url连接不上的时候,程序执行到Send()的时候,程序会动退出,并报错,搜索资料,也没有相关信息,请各位帮忙解决.
解决方法看3# 查阅帮助文档的“COM 出错处理” Dim $sUrl="http://www.baidusf.com/"
$oMyError = ObjEvent("AutoIt.Error","MyErrFunc");加这行初始COM 对像句柄,这样就可以知道出错的原因了error handler
$oHTTP = ObjCreate("microsoft.xmlhttp")
$aa=$oHTTP.Open("GET",$sUrl,False)
ConsoleWriteError(@error)
$oHTTP.Send("");发送
Func MyErrFunc()
Msgbox(0,"AutoItCOM Test","We intercepted a COM Error !" & @CRLF& @CRLF & _
"err.description is: " & @TAB & $oMyError.description & @CRLF & _
"err.windescription:" & @TAB & $oMyError.windescription & @CRLF & _
"err.number is: " & @TAB & hex($oMyError.number,8)& @CRLF & _
"err.lastdllerror is: " & @TAB & $oMyError.lastdllerror & @CRLF & _
"err.scriptline is: " & @TAB & $oMyError.scriptline & @CRLF & _
"err.source is: " & @TAB & $oMyError.source & @CRLF & _
"err.helpfile is: " & @TAB & $oMyError.helpfile & @CRLF & _
"err.helpcontext is: " & @TAB & $oMyError.helpcontext _
)
Local $err = $oMyError.number
If $err = 0 Then $err = -1
$g_eventerror = $err; to check for after this function returns
Endfunc多谢afan版的指点.. 请修改标题后面的“如错解决[解决]”为“如何解决[已解决]”
规范标题关键字,便于搜索,利国利民~ 都这个时候啦,楼主就不要再执迷 XMLHTTP 这个老旧的东西啦,Winhttp 是最好的选择。 感谢指点~~
页:
[1]