woeiwoei 发表于 2011-1-8 01:42:41

这样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天了。。脑袋疼~。。

woeiwoei 发表于 2011-1-8 09:22:57

自己顶啊。。。

republican 发表于 2011-1-8 09:33:57

05行错误,HTTP/1.1 表明协议版本,不是网址。

woeiwoei 发表于 2011-1-8 10:11:11

本帖最后由 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这个 因该 改成那个函数 才能 获取到 标题信息呢?

如图:

哎 兜来兜去 兜了个圈子。。。呵呵。

republican 发表于 2011-1-8 11:17:24

回复 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",$$$
上述三个没特殊需要完全可以不填。

woeiwoei 发表于 2011-1-8 11:26:08

回复 5# republican


    老大,你太给力了。。非常感谢。。学了不少东西~~{:face (88):}

woeiwoei 发表于 2011-1-8 11:34:12

从热心的 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最终解决 过程 献上~~望有需要的人 参考~~

popyoung 发表于 2011-1-9 11:59:28

收藏了,正好学习抓包。

komaau3 发表于 2011-1-10 14:08:42

好帖啊学到了不少,感谢楼主及上面那位热心的前辈

jilk168 发表于 2011-1-14 17:04:39

学习中。。。。

mzjl001 发表于 2011-3-23 03:34:49

$oHTTP.option(6)=0

这行什么意思?

freedom 发表于 2011-8-12 19:08:45

做个记号。。

macchare 发表于 2011-9-17 14:45:19

得慢慢研究下一下看完糊涂了

拉风晓晓 发表于 2011-9-20 12:16:03

强力贴,标记

.個朲綉√ 发表于 2011-11-26 14:31:20

原来可以这么的获取Location,学习了。。。。
页: [1] 2
查看完整版本: 这样GET 有问题吗?【已解决】