找回密码
 加入
搜索
查看: 6708|回复: 11

[网络通信] 【已解决】怎样提高POST登录的效率呀?(以ACN论坛为例)

 火.. [复制链接]
发表于 2012-10-5 12:14:36 | 显示全部楼层 |阅读模式
本帖最后由 lujd0429 于 2012-10-5 21:24 编辑

最近在学习POST登录方面的知识,并且也能够POST登录成功!但是我发现一个问题就是POST登录的速度慢的真是离谱,就拿我下面的ACN论坛POST登录为例吧,我等待至少20秒左右才能执行完脚本代码,并提示登录成功!请教这是为什么?或是该如何修改代码? 谢谢!


$UserName = '你的用户名'
$password = '你的密码'
$LoginPage = 'http://www.autoitx.com/space-uid-7653501.html'    ; 登录信息填写页
$PostPage = 'http://www.autoitx.com/logging.php?action=login&loginsubmit=yes'  ;POST地址
$CheckPage = 'http://www.autoitx.com/index.php'     ; 检测帐号登录情况页
$xmlHttpReq = ObjCreate("MSXML2.XMLHTTP.3.0")

#cs
  下列代码段用于检查之前帐号有无退出。因为如果没有退出的话,就获取不到Post数据中的formhash值。
#ce
$xmlHttpReq.open("GET", $CheckPage, false)
$xmlHttpReq.send()
$Content = BinaryToString($xmlHttpReq.responseBody,1)
If StringRegExp($Content,'class="noborder">'&$UserName&'</a></cite>',0) Then    ;存在此段网页代码则说明帐号已经登录。
        $FormHash11 = StringRegExp($Content,'formhash=(.*?)">退出</a>',3)     ;获取退出时所要使用的formhash值
        $xmlHttpReq.open("GET", 'http://www.autoitx.com/logging.php?action=logout&formhash='&$FormHash11[0]&'', false)   ; 退出帐号
        $xmlHttpReq.send()
EndIf
$xmlHttpReq.abort()

#cs
  下列代码段用于获取POST数据中的formhash值以及提交POST数据登录
#ce
$xmlHttpReq.open("GET", $LoginPage, false)
$xmlHttpReq.send()
$Content = BinaryToString($xmlHttpReq.responseBody,1)
$FormHash = StringRegExp($Content,'name="formhash" value="(.*?)\"',3)
If @error = 0 Then 
        $xmlHttpReq.open("POST",$PostPage,false)
        $xmlHttpReq.setRequestHeader('Content-Type','application/x-www-form-urlencoded')
        $xmlHttpReq.send('formhash='&$FormHash[0]&'&loginfield=username&username='&$UserName&'&password='&$password&'&questionid=0&answer=&loginsubmit=%B5%C7%C2%BC')
        $Content = BinaryToString($xmlHttpReq.responseBody,1)
        $xmlHttpReq.abort()
        If StringRegExp($Content,'<p>欢迎您回来,'&$UserName&'。现在将转入登录前页面。  </p>',0) Then
           MsgBox(0,"","登录成功!")
        Else
           MsgBox(0,"","登录失败!")
        EndIf
EndIf

发表于 2012-10-5 16:25:27 | 显示全部楼层
回复 1# lujd0429

木有吧??我直接用你的代码来登录,5秒钟左右吧,而且我的网速本来就很慢~

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×

评分

参与人数 1金钱 +19 收起 理由
lujd0429 + 19 感谢!测试~

查看全部评分

 楼主| 发表于 2012-10-5 20:46:55 | 显示全部楼层
回复 2# annybaby

难道我的电脑系统又出毛病啦??
发表于 2012-10-5 22:43:37 | 显示全部楼层
XMLHTTP将使用IE的Cookies,你要想每次都登录,请选用winHTTP组件.

评分

参与人数 1金钱 +22 收起 理由
lujd0429 + 22 Thanks~

查看全部评分

 楼主| 发表于 2012-10-5 23:24:12 | 显示全部楼层
回复 4# republican


谢谢指点!
发表于 2012-11-15 22:23:56 | 显示全部楼层
求楼主提供xmlhttp方法的教材~

另求目前最新的http处理的方法
发表于 2013-3-1 20:38:03 | 显示全部楼层
学习了
发表于 2013-5-21 18:00:58 | 显示全部楼层
看看怎么提高效率
发表于 2013-5-21 18:14:55 | 显示全部楼层
求楼主提供xmlhttp方法的教材
发表于 2013-6-19 03:51:20 | 显示全部楼层
一知半解的。
发表于 2017-8-18 15:40:29 | 显示全部楼层
很好的例子,学习了~~
发表于 2018-4-25 19:09:03 | 显示全部楼层
很有意义的讨论,学习一下
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-5-18 08:55 , Processed in 0.092694 second(s), 29 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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