316428696 发表于 2010-1-28 15:38:43

关于POST数据容错处理的问题



$oHTTP = ObjCreate("Msxml2.xmlhttp")
;Post提交方式
$oHTTP.Open("Post","www.126.com",false)
$oHTTP.setRequestHeader("Cache-Control", "no-cache")
$oHTTP.setRequestHeader("Content-Type","application/x-www-form-urlencoded")
$oHTTP.setRequestHeader("Referer","www.126.com")
$oHTTP.Send("")
$oHTTP.Responsetext

以上代码是一段POST向服务器提交数据返回页面内容的代码,但是现在遇到一个非常棘手的问题,就是,用户在没有网络的情况下,如何容错?【容错就是发生异常的处理】

在有网络和网路畅通的情况下,这里没问题,但是在没有网络或者网路异常的情况下,程序执行到 $oHTTP.Send("") 就会出错!程序直接结束!是一个很严重的BUG。
也不知道oHTTP 有没有返回状态 成功和失败的状态!

注:我已查阅帮助,并没有相关的说明!
已使用解决办法:
使用:错误处理函数;错误处理函数
$oMyError                 = ObjEvent("AutoIt.Error","MyErrFunc")
Func MyErrFunc()
   $HexNumber=hex($oMyError.number,8)
   Msgbox(0,"","We intercepted a COM Error !" & @CRLF & _
                "Number is: " & $HexNumber & @CRLF & _
                "Windescription is: " & $oMyError.windescription )
   $_eventerror = 1
Endfunc无效并未解决

再者就是程序在Post数据开始前就进行网络的检测!这个办法只能解决一时的问题,比如我Post数据前网络还正常,中途网络发生故障,程序会直接挂掉。这种错误是不允许的,请教高手有什么好的办法么?小弟不才!

316428696 发表于 2010-1-28 20:50:56

难道就没高手站出来么?

316428696 发表于 2010-1-29 17:20:04

:face (37):等待高手出现...

rolaka 发表于 2010-1-29 20:46:51

筒子.....................

$oHTTP.Open("Post","www.126.com",false)

http://呢? 被你吃了?

316428696 发表于 2010-1-30 14:33:16

嗯,吃了!

rho123 发表于 2010-1-30 14:43:11

$oHTTP.Open("Post","www.126.com",false)
改成 $oHTTP.Open("Get","http://www.126.com",false)

316428696 发表于 2010-1-30 14:49:38

$oHTTP.Open("Post","www.126.com",false)
改成 $oHTTP.Open("Get","http://www.126.com",false)
rho123 发表于 2010-1-30 14:43 http://www.autoitx.com/images/common/back.gif
嗯,这个之前的源代码是没错的,为了防止别人看到我的的源代码地址,这个是替换了真实网址的,不过就算加上http 结果是一样的,我的问题依旧存在!
页: [1]
查看完整版本: 关于POST数据容错处理的问题