VBS獲取重定向的URL的代碼

字號(hào):


    我本來(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è)試方便,我寫了一個(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)題就這樣完美的解決了