兔子先生 发表于 2011-11-17 12:43:42

关于POST提交数据在循环中一部分失效

Local $i = 0,$n = 0
        While $n <5
           While $i < 10
          RunWait(@ComSpec & " /C rundll32.exe " & @SystemDir & "\InetCpl.cpl,ClearMyTracksByProcess 4351", "", @SW_HIDE)
              Sleep(6000)
          $oHTTP = ObjCreate("microsoft.xmlhttp")
          $oHTTP.Open("post","http://control.blog.sina.com.cn/admin/vote/shot_vote.php?version=7&domain=1",false)
              Sleep(8000)
          $oHTTP.setRequestHeader("Cache-Control", "no-cache")
          $oHTTP.setRequestHeader("Accept-Language", "zh-cn")
          $oHTTP.setRequestHeader("Content-Type","application/x-www-form-urlencoded")
              $oHTTP.setRequestHeader("Referer","http://blog.sina.com.cn/s/blog_7c1e46580100xyph.html")
              Sleep(3000)
          $oHTTP.Send("blog_id=7c1e46580100xyph&vote_checklist=654_3");post关键数据
              Sleep(3000)
              $i = $i + 1
      WEnd
          $n = $n + 1
          Sleep(600000)
   WEnd关键的代码在上面,然后我疑惑的事情是 前面10次成功了,然后票数再也没有多过,搜索了论坛里面的教程也都没有讲到这一方面的作用。
在这里也感谢一下出教程的兄弟,虽然不记得他的ID了,还是感谢下吧。

如果改成单循环 直接50次 貌似也是只有前面10次有效 好奇怪的问题。 win7 32位系统+ie9

兔子先生 发表于 2011-11-17 13:50:48

刚刚测试了下,只有一个循环,然后在循环结束之后弹出$i的值,发现循环了这么多次
但是票数没有多,证明中间网页打开失效?
那问题就是怎么判断网页加载完毕了呢?

justwait 发表于 2011-11-18 07:23:22

你这中间加的延时代表啥呢

hdlan 发表于 2011-11-18 09:34:01

表示学习Whil 还在学习中··

兔子先生 发表于 2011-11-18 16:04:25

你这中间加的延时代表啥呢
justwait 发表于 2011-11-18 07:23 http://www.autoitx.com/images/common/back.gif

开始没有加 后面发现只有10票成功 我在想是不是因为网页没有加载完毕导致的。。就试了试。。

republican 发表于 2011-11-18 20:39:36

本帖最后由 republican 于 2011-11-18 20:43 编辑

回复 1# 兔子先生
$oHTTP.Send 之前都只是初始化实例,不会与服务器连接的,你之前的sleep只是在浪费时间.
send本身也是阻塞语句,等数据成功发送后自然会返回,所以也没必要sleep。

想看post是否成功,获取服务器的返回值即可。

兔子先生 发表于 2011-11-20 19:19:52

回复兔子先生
$oHTTP.Send 之前都只是初始化实例,不会与服务器连接的,你之前的sleep只是在浪费时间. ...
republican 发表于 2011-11-18 20:39 http://www.autoitx.com/images/common/back.gif

谢谢指教
页: [1]
查看完整版本: 关于POST提交数据在循环中一部分失效