这样GET 有问题吗?【已解决】
本帖最后由 woeiwoei 于 2011-1-8 11:28 编辑这是 用工具捕获到的 信息。。GET /launch/get_code!download.action HTTP/1.1
Accept: */*
Accept-Language: zh-cn
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET4.0C; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30)
Host: union1.sogou.com
Connection: Keep-Alive
Cookie: JSESSIONID=abcv3NgiG2MOIgaPjFH1s然后我用 代码:
$Obj = _IEDocGetObj($oIE)
$Cookie = $Obj.cookie
GUICtrlSetData($Edit1,"跳转下载页面成功!"&@CRLF,1)
$oHTTP = ObjCreate("winhttp.winhttprequest.5.1")
$oHTTP.Open("GET","http://union1.sogou.com/launch/get_code!download.action HTTP/1.1")
$oHTTP.setRequestHeader("Accept", "*/*")
$oHTTP.setRequestHeader("Accept-Encoding", "gzip, deflate")
$oHTTP.setRequestHeader("Accept-Language", "zh-cn")
$oHTTP.setRequestHeader("Connectione", "Keep-Alive")
$oHTTP.setRequestHeader("Cookie",$Cookie)
$oHTTP.setRequestHeader("Host","union1.sogou.com")
$oHTTP.setRequestHeader("User-Agent","Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET4.0C; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30)")
$oHTTP.send("")
$a = $oHTTP.responseText
MsgBox(0,0,$a)
但是却提示 这样的信息:
其实我这样做 目的就是为了 通过GET 后返回的信息,获取页面跳转后原始的exe名字,因为我的程序 是GUI嵌入 IE窗口,不想让 下载窗口 跳出来。想获取到原始名字后 后台下载。
大家帮忙看看吧。。谢谢了。。搞了1天了。。脑袋疼~。。 自己顶啊。。。 05行错误,HTTP/1.1 表明协议版本,不是网址。 本帖最后由 woeiwoei 于 2011-1-8 10:21 编辑
回复 3# republican
嗯 现在搞定了。。谢谢大侠指点。$oHTTP = ObjCreate("winhttp.winhttprequest.5.1")
$oHTTP.Open("GET","http://union1.sogou.com/launch/get_code!download.action")
$oHTTP.setRequestHeader("Accept", "*/*")
$oHTTP.setRequestHeader("Accept-Encoding", "gzip, deflate")
$oHTTP.setRequestHeader("Accept-Language", "zh-cn")
$oHTTP.setRequestHeader("Connectione", "Keep-Alive")
$oHTTP.setRequestHeader("Cookie",$Cookie)
$oHTTP.setRequestHeader("Host","union1.sogou.com")
$oHTTP.setRequestHeader("User-Agent","Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET4.0C; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30)")
$oHTTP.send("")
这样就OK 了。。。去掉HTTP /1.1
再请教个大侠个问题。。这个 GET后返回的text 是加过密的。。也不包含我想要的信息。。我不想获取 它的内容。我只想获取GET 后 服务器返回的 标题信息。。
$oHTTP.responseText这个 因该 改成那个函数 才能 获取到 标题信息呢?
如图:
哎 兜来兜去 兜了个圈子。。。呵呵。 回复 4# woeiwoei
想获取Location?
你应该庆幸你用的是winhttp.
参照以下格式:
$oHTTP = ObjCreate("WinHttp.WinHttpRequest.5.1")
$oHTTP.option(6)=0
$oHTTP.SetTimeouts(5000,5000,5000,5000)
$oHTTP.Open("GET", $Url, False)
$oHTTP.Send()
$Location1=$oHTTP.getResponseHeader("Location")
$oHTTP=0
关于Header,某些参数是有默认值的.
"Accept", "*/*"
"Connectione", "Keep-Alive"
"Host",$$$
上述三个没特殊需要完全可以不填。 回复 5# republican
老大,你太给力了。。非常感谢。。学了不少东西~~{:face (88):} 从热心的 republican 身上学习很多很多。。。再一次感谢republican大侠!!$Obj = _IEDocGetObj($oIE)
$Cookie = $Obj.cookie ;获取cookie
$oHTTP = ObjCreate("winhttp.winhttprequest.5.1")
$oHTTP.option(6)=0
$oHTTP.SetTimeouts(5000,5000,5000,5000)
$oHTTP.Open("GET","http://union1.sogou.com/launch/get_code!download.action",False) ;GET 提交的地址
$oHTTP.setRequestHeader("Accept", "*/*") ;以下都是 抓包获取的数据(这行可以删除)
$oHTTP.setRequestHeader("Accept-Encoding", "gzip, deflate")
$oHTTP.setRequestHeader("Accept-Language", "zh-cn")
$oHTTP.setRequestHeader("Connectione", "Keep-Alive") ;(这行可以删除)
$oHTTP.setRequestHeader("Cookie",$Cookie)
$oHTTP.setRequestHeader("Host","union1.sogou.com") ;(这行可以删除)
$oHTTP.setRequestHeader("User-Agent","Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET4.0C; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30)")
$oHTTP.Send()
$Location1=$oHTTP.getResponseHeader("Location") ;这个是GET后服务器返回的 头信息~
$oHTTP=0最终解决 过程 献上~~望有需要的人 参考~~ 收藏了,正好学习抓包。 好帖啊学到了不少,感谢楼主及上面那位热心的前辈 学习中。。。。 $oHTTP.option(6)=0
这行什么意思? 做个记号。。 得慢慢研究下一下看完糊涂了 强力贴,标记 原来可以这么的获取Location,学习了。。。。
页:
[1]
2