找回密码
 加入
搜索
查看: 2524|回复: 5

新手关于xmlhttp的一些问题

[复制链接]
发表于 2009-6-5 11:24:59 | 显示全部楼层 |阅读模式
本帖最后由 crkey1234 于 2009-6-8 15:08 编辑

看到某个大虾关于登录坛子的一段代码:
#include <IE.au3> 

Func _Post_Login($Name,$Pass)
$oHTTP = ObjCreate("Msxml2.xmlhttp")
$oHTTP.Open("Post","http://www.autoitx.com/logging.php?action=login",false)
$oHTTP.setRequestHeader("Cache-Control", "no-cache")
$oHTTP.setRequestHeader("Content-Type","application/x-www-form-urlencoded")  
$oHTTP.setRequestHeader("Referer","http://www.autoitx.com")
$oHTTP.Send('sid=dJ6jji&formhash=aa9fb561&referer=&cookietime=2592000&loginfield=username&username=' & $Name & '&password=' & $Pass & '&questionid=0&answer=&loginsubmit=%BB%E1%D4%B1%B5%C7%C2%BC')
$Log = BinaryToString($oHTTP.responseBody)
$Log = _Search($Log,'<p>(.*?)<script>')
MsgBox(64,"提示:",$Log)
EndFunc
 
Func _Search($Txt,$Condition)
        Local $Result
        $array = StringRegExp($Txt,$Condition, 2, 1)
        for $i = 0 to UBound($array) - 1
            $Result = $array[$i]
                Next
        Return $Result
EndFunc
 
$Name= "用户名"
$Pass= "密码"
 
_Post_Login($Name,$Pass)
_IECreate ("http://www.autoitx.com/",1,1,0)
用的post方法,小菜对其中xmlhttp实在不明。
例如:1.  $oHTTP.setRequestHeader后面为啥要设置Cache-Control,Content-Type,Referer这三个参数?
2.  $oHTTP.send发送的值从哪里知道的?
3.  解决此类问题应该了解哪些知识?
小菜第一次发帖,望不吝赐教。
发表于 2009-6-5 18:05:32 | 显示全部楼层
setRequestHeader:单独指定请求的某个http头
$oHTTP.setRequestHeader("Cache-Control", "no-cache")
"no-cache":数据内容不被储存,就是说每次请求都是到服务器读取
$oHTTP.setRequestHeader("Content-Type","application/x-www-form-urlencoded")  
"application/x-www-form-urlencoded":要是post格式的话必须要用到这个
$oHTTP.setRequestHeader("Referer","http://www.autoitx.com")
Referer:告诉服务器我是从哪个页面链接过来的,有些网页时禁止外站提交的,加入这个就ok啦
$oHTTP.send的值得话,如果对html不了解的话,那就用WSockExpert或者wpe抓包可以得到,对抓到的包进行修改即可,要是对html了解的话,那就看下form表单中有些什么,可以自己构造
你去网上找下ajax的文章,可以了解这方面的知识的!



评分

参与人数 1金钱 +10 收起 理由
amxi + 10 解释很好,谢谢

查看全部评分

发表于 2009-6-6 21:44:02 | 显示全部楼层
很好。需要看看研究一下
发表于 2009-7-26 14:17:34 | 显示全部楼层
研究研究。。。。。。。。
发表于 2010-2-6 19:36:50 | 显示全部楼层
再次抓包看看怎么回事
发表于 2012-6-20 13:30:59 | 显示全部楼层
既然_Post_Login($Name,$Pass)函数里已经有发送autoie.net.cn的相关请求了,为啥后面还要用_IECreate ("http://www.autoitx.com/",1,1,0)呢?
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-9-30 07:20 , Processed in 0.075092 second(s), 22 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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