1. 程式人生 > >用.net獲取重定向之後的地址

用.net獲取重定向之後的地址

Response.redirect 重定向就是向客戶端的瀏覽器傳送一個特殊的HTTP報頭:
HTTP/1.1  302  Object  Moved 
Location http://redirecturl
瀏覽器讀到此報頭,就按Location值的指示載入頁面.所以,獲取重定向後的URL也就是獲取HTTP頭的Location值.
c#版
using System.Net;          
 HttpWebRequest myHttpWebRequest = (HttpWebRequest)HttpWebRequest.Create("http://tuangai.com/group/40926.html");
            myHttpWebRequest.AllowAutoRedirect = false;
            HttpWebResponse myHttpWebResponse = (HttpWebResponse)myHttpWebRequest.GetResponse();
            MessageBox.Show(myHttpWebResponse.Headers.Get("Location"));

vb.net版
  '建立一個HttpWebRequest物件
Dim myHttpWebRequest As HttpWebRequest = HttpWebRequest.Create(sRedirectUrl)
         '禁止自動響應重定向
         myHttpWebRequest.AllowAutoRedirect = False
         '建立一個HttpWebResponse物件
Dim myHttpWebResponse As HttpWebResponse = myHttpWebRequest.GetResponse() '同步方式獲取
         '獲得重定向地址
         MessageBox.Show(myHttpWebResponse.Headers("Location")) '獲取HTTP報頭的Location值