我本來(lái)想獲取aaa.com頁(yè)面的內(nèi)容,可是aaa.com跳轉(zhuǎn)到bbb.com了。我想獲取bbb.com 這個(gè)網(wǎng)址。
某個(gè)人問(wèn)的問(wèn)題:
我本來(lái)想獲取aaa.com頁(yè)面的內(nèi)容,可是aaa.com跳轉(zhuǎn)到bbb.com了。我想獲取bbb.com 這個(gè)網(wǎng)址。
訪問(wèn)了一下他所謂的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è)試方便,我寫(xiě)了一個(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指定的頁(yè)面了。
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")
問(wèn)題就這樣完美的解決了