新手关于xmlhttp的一些问题
本帖最后由 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.解决此类问题应该了解哪些知识?
小菜第一次发帖,望不吝赐教。 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的文章,可以了解这方面的知识的!
http://lwc.nhome.cn/code/showip.asp 很好。需要看看研究一下 研究研究。。。。。。。。 再次抓包看看怎么回事 既然_Post_Login($Name,$Pass)函数里已经有发送autoie.net.cn的相关请求了,为啥后面还要用_IECreate ("http://www.autoitx.com/",1,1,0)呢?
页:
[1]