某個(gè)人問的問題:
我本來想獲取aaa.com頁面的內(nèi)容,可是aaa.com跳轉(zhuǎn)到bbb.com了。我想獲取bbb.com 這個(gè)網(wǎng)址。
訪問了一下他所謂的aaa.com,發(fā)現(xiàn)是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/
為了測(cè)試方便,我寫了一個(gè)302.php,重定向到小顧de雜記:
?php
header('Location: http://ihipop.info/');
?>
先用XMLHTTP試試:
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消息時(shí)太智能,直接給跳轉(zhuǎn)到Location指定的頁面了。
XMLHTTP不行,我們還有WinHttp.WinHttpRequest.5.1,該組件的Option屬性的第六個(gè)索引EnableRedirects就是指示是否自動(dòng)跳轉(zhuǎn):
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")
問題就這樣完美的解決了,但是那個(gè)人連聲謝謝都沒有,真是世風(fēng)日下。
原文:http://demon.tw/programming/vbs-http-302-redirect.html