找回密码
 加入
搜索
查看: 2290|回复: 6

[系统综合] 怎么解决 $oHTTP.Send^ ERROR 这种错误啊。我要疯了。

[复制链接]
发表于 2014-9-18 18:58:07 | 显示全部楼层 |阅读模式
本帖最后由 diandiand163 于 2014-9-18 19:04 编辑

代码如下:每行的URL都存在,有的打开页面不存在,但会跳转到首页,读到很慢的网址就会出错啦。怎么解决?这个问题困扰我好久了,求救啊。
#AutoIt3Wrapper_UseX64=n
HotKeySet("{esc}", "_hotkey")
Func _hotkey()
       Exit
EndFunc   ;==>_hotkey

Local $file = FileOpen(@ScriptDir&"\m2.txt", 0)

For $i=346 To 15084  

Local $line = FileReadLine($file,$i)
$url='http://'&$line&'.b2b.youboy.com/contactus.html'  ;网址

                $oHTTP = ObjCreate("WinHttp.WinHttpRequest.5.1")   ;microsoft.xmlhttp  MSXML2.XMLHTTP  MSXML2.ServerXMLHTTP
        $oHTTP.Open("get", $url, False)
                $oHTTP.Option(6)=0
          $oHTTP.setRequestHeader("Accept", "text/html, application/xhtml+xml, */*")
          $oHTTP.setRequestHeader("Accept-Language", "zh-CN")
                $oHTTP.SetTimeouts (9999999,9999999,9999999,9999999)
                $oHTTP.Send
                $oHTTP.WaitForResponse   ;等待返回内容
        $htmlstr =   ($oHTTP.responsetext)
if @error then ContinueLoop        
ToolTip ("第"&$i&"行",0,0,"提示")
ClipPut ($i)
Next
每行的URL都存在,有的打开页面不存在,但会跳转到首页,读到很慢的网址就会出错啦。怎么解决?这个问题困扰我好久了,求救啊。
 楼主| 发表于 2014-9-18 19:32:43 | 显示全部楼层
精简成这样也不行啊。
#AutoIt3Wrapper_UseX64=n
HotKeySet("{esc}", "_hotkey")
Func _hotkey()
       Exit
EndFunc   ;==>_hotkey

Local $file = FileOpen(@ScriptDir&"\m2.txt", 0)

For $i=380 To 15084  
Dim $oHTTP 

Local $line = FileReadLine($file,$i)
$url='http://'&$line&'.b2b.youboy.com/contactus.html'  ;网址

                $oHTTP = ObjCreate("WinHttp.WinHttpRequest.5.1")   ;microsoft.xmlhttp  MSXML2.XMLHTTP  MSXML2.ServerXMLHTTP
        $oHTTP.Open("get", $url, True )
                $oHTTP.Option(4) = 13056
                $oHTTP.Option(6)=True 
        
                $oHTTP.SetTimeouts(60000, 60000, 60000, 3000 )
                $oHTTP.Send()
        
If @error Then

                 MsgBox(0, "错误", "超时")
                         Else
                                 ToolTip ($i,0,0,"读取行提示")
        EndIf
Next
 楼主| 发表于 2014-9-18 19:33:14 | 显示全部楼层
狗日的,到底哪里出了问题啊。
发表于 2014-9-18 19:49:09 | 显示全部楼层
看下有没有http超时时间的设置项
发表于 2014-9-18 22:07:55 | 显示全部楼层
漏了一行,在send后一行加上获取数据BinaryToString($oHTTP.responseBody, 1)
 楼主| 发表于 2014-9-19 09:22:10 | 显示全部楼层
汗,不用获取数据都会报错,只是发送请求遇到访问慢的网址就会中断退出。和楼上说的这个一点关系也没有,不过还是要谢谢你的解答。
发表于 2014-9-19 11:52:16 | 显示全部楼层
看不懂要实现什么
如下代码可读取网页数据,需要什么,再通过正则分析取得自己所需要的数据就可以了
_main()
Exit

Func _main()

                
        $Url='http://www.autoitx.com/thread-45338-1-1.html'
        Local $a = _Winhttp($Url)
             ConsoleWrite($a)

EndFunc   ;==>_main




Func _Winhttp($Url)
$oHTTP = ObjCreate("winhttp.winhttprequest.5.1")
$oHTTP.Open("GET",$Url)
$oHTTP.Send()
$Source = $oHTTP.responseBody
$Source = BinaryToString($Source, 1)
Return $Source
EndFunc
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-4-29 14:11 , Processed in 0.078862 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表