oneyicn 发表于 2010-10-13 12:37:05

用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#

afan 发表于 2010-10-13 12:39:09

查阅帮助文档的“COM 出错处理”

oneyicn 发表于 2010-10-13 13:23:47

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版的指点..

afan 发表于 2010-10-13 14:35:45

请修改标题后面的“如错解决[解决]”为“如何解决[已解决]”
规范标题关键字,便于搜索,利国利民~

republican 发表于 2010-10-13 16:25:27

都这个时候啦,楼主就不要再执迷 XMLHTTP 这个老旧的东西啦,Winhttp 是最好的选择。

g0452 发表于 2011-11-4 21:59:53

感谢指点~~
页: [1]
查看完整版本: 用microsoft.xmlhttp对象,open不存在的url,send的时候出错[已解决]