222222 发表于 2011-3-29 20:24:23

Post与Cookie【XMLHTTP】

有一段时间的事情了,突然回想起来,不知道是啥原因。因为一直没搞懂,恳请高人指点。

网页上有个按钮,点击后会出现“今日头牌是:XXX”的提示。我找到这个按钮的实际网址,在我输入账号、密码登录后,直接在地址栏输入按钮的网址,就会出现出现“今日头牌是:XXX”。如果我没有登录,那么输入网址,会提示“请登录……”。

在学习Autoit的过程中,我想练练手,通过POST的方式去点击按钮。于是用HttpWatch抓取了数据如下:
POST    /***/todaygirl=1    HTTP/1.1
x-requested-with: XMLHttpRequest
Accept-Language: zh-cn
Accept: application/json, text/javascript, */*
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0)
Referer: http://***/***.html
Host: www.***.net
Content-Length: 0
Connection: Keep-Alive
Cache-Control: no-cache
Cookie:******************************************


通过一个小工具“vincent post发送工具”,我将按钮的实际网址“http://****/***/todaygirl=1”   和Cookie的内容录入 ,点击“发送”后,能成功出现“今日头牌是:XXX”的提示,返回值为6 。如果仅录入网址,不录入Cookie内容,会提示“请登录……”,返回值为2。

但是我用Autoit编写代码如下,确始终提示“请登录……”,返回值为2,和用小工具时未录入Cookie的状况一样。

$oHTTP = ObjCreate("microsoft.xmlhttp")
$oHTTP.Open("post","http://****/***/todaygirl=1",false)
$oHTTP.setRequestHeader("x-requested-with", "XMLHttpRequest")
$oHTTP.setRequestHeader("Accept-Language", "zh-cn")
$oHTTP.setRequestHeader("Accept", "application/json, text/javascript, */*")
;$oHTTP.setRequestHeader("Content-Type", "application/x-www-form-urlencoded")
$oHTTP.setRequestHeader("Accept-Encoding", "gzip, deflate")
$oHTTP.setRequestHeader("User-Agent", "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0)")
$oHTTP.setRequestHeader("Referer","http://***/***.html")
$oHTTP.setRequestHeader("Host", "www.***.net")
$oHTTP.setRequestHeader("Content-Length", "0")
$oHTTP.setRequestHeader("Connection", "Keep-Alive")
$oHTTP.setRequestHeader("Cache-Control", "no-cache")
$oHTTP.setRequestHeader("Cookie", "*****************************")
$oHTTP.Send()

我曾经怀疑Cookie值是不是始终在变化,所以每次不一样,而且我也确实观察到貌似Cookie中的个别数值有细微的变动。但是在小工具上,依旧使用之前的Cookie值,也照样成功。所以我感觉应该不是Cookie值的问题,可能是代码的问题。

bakefish 发表于 2011-3-29 23:09:54

cookie失效
先用autoit登录该站,获得cookie后,再用xmlhttp做post

republican 发表于 2011-3-30 08:00:10

XMLHTTP 设置Cookie失败。

XMLHTTP是老旧的东西了,可以考虑换用其他的方法。

222222 发表于 2011-3-30 09:37:00

回复 2# bakefish


疑难的就是,Cookie是我在运行自编代码之前,用Http Watch 抓包抓的,用在我说的“Post发送工具”上一切正常,但用Autoit上就不行了……

222222 发表于 2011-3-30 09:38:23

回复 3# republican


    请教:其它还有什么方法吗?愿闻其详。或给个资料的链接地址。谢谢

222222 发表于 2011-3-30 09:39:01

有个 winhttp 不知道是新的方法还是旧方法……
页: [1]
查看完整版本: Post与Cookie【XMLHTTP】