某个人问的问题:
我本来想获取aaa.com页面的内容,可是aaa.com跳转到bbb.com了。我想获取bbb.com 这个网址。
访问了一下他所谓的aaa.com,发现是HTTP 302重定向
HTTP/1.1 302 Moved Temporarily
Server: nginx/0.8.53
Date: Fri, 08 Apr 2011 15:49:25 GMT
Content-Type: text/html;charset=utf-8
Transfer-Encoding: chunked
Connection: keep-alive
X-Powered-By: PHP/5.2.15
Location: http://tuan.sohu.com/beijing/life/
为了测试方便,我写了一个302.php,重定向到小顾de杂记:
1
2
3
|
<?php
header( 'Location: http://ihipop.info/' );
?>
|
先用XMLHTTP试试:
1
2
3
4
5
|
Dim http
Set http = CreateObject( "Msxml2.ServerXMLHTTP" )
http.open "GET" , "http://demon.tw/test/302.php" , False
http.send
WScript.Echo http.responseText
|
XMLHTTP组件在处理包含Location头的302消息时太智能,直接给跳转到Location指定的页面了。
XMLHTTP不行,我们还有WinHttp.WinHttpRequest.5.1,该组件的Option属性的第六个索引EnableRedirects就是指示是否自动跳转:
1
2
3
4
5
6
|
Dim WinHttp
Set WinHttp = CreateObject( "WinHttp.WinHttpRequest.5.1" )
WinHttp.Open "GET" , "http://demon.tw/test/302.php" , False
WinHttp. Option (6) = False
WinHttp.Send
WScript.Echo WinHttp.GetResponseHeader( "Location" )
|
问题就这样完美的解决了,但是那个人连声谢谢都没有,真是世风日下。
原文:http://demon.tw/programming/vbs-http-302-redirect.html