2011-06-29 188 views
0

我想檢查一個url的重定向位置,但總是得到錯誤的結果。例如,對於網址爲http://www.yellowpages.com.eg/Mjg3NF9VUkxfMTEwX2h0dHA6Ly93d3cubG90dXMtYWlyLmNvbV8=/Lotus-Air/profile.html的網址,它會重定向到http://www.lotus-air.com,其中包含302 Found的重定向類型(您可以在此服務上測試它http://www.internetofficer.com/seo-tool/redirect-check/),但是我會將「http://mobile.yellowpages.com.eg/」作爲webResp.GetResponseHeader(「位置」)。我的代碼如下:檢測302重定向

 string url = @"http://www.yellowpages.com.eg/Mjg3NF9VUkxfMTEwX2h0dHA6Ly93d3cubG90dXMtYWlyLmNvbV8=/Lotus-Air/profile.html"; 


     HttpWebRequest webReq = WebRequest.Create(url) as HttpWebRequest; 
     webReq.Method = "HEAD"; 
     webReq.AllowAutoRedirect = false; 
     HttpWebResponse webResp = webReq.GetResponse() as HttpWebResponse; 
     txtOutput.Text += webResp.StatusCode.ToString() + "\r\n" ; 
     txtOutput.Text += webResp.GetResponseHeader("Location") + "\r\n"; 
     txtOutput.Text += webResp.ResponseUri.ToString(); 

     webResp.Close(); 

謝謝。

葉海亞

回答

1

正如本所指出的,它重定向基於用戶代理。只需添加一些用戶代理(這個人是鉻):

webReq.UserAgent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.A.B.C Safari/525.13"; 

對我來說,它重定向到http://www.lotus-air.com

3

他們可能發送基於用戶代理的不同重定向,所以你在你的代碼瀏覽器和其他得到一個結果。

2

您可以使用HTTP調試代理來理解標題的來回移動,並允許您更改您的用戶代理以幫助測試Ben的理論(I + 1'd)。

一個好的是Fiddler - Web Debugging Proxy免費和易於使用/

下面的截圖顯示了我改變用戶代理,以一個老IEMobile一個「的Mozilla/4.0(兼容; MSIE 6.0; Windows CE的; IEMobile 6.12;恩美國; KIN.Two 1.0)「,將我重定向到mobile.yellowpages.com.eg

nb更改爲用戶代理的iPad帶您iphone.yellowpages.com.eg

Switching the user agent to one of a mobile phone, redirects you to mobile.yellowpages.com.eg

+2

+1我同意fiddler是這種調試的絕佳工具 –

+0

謝謝@Ben,我完全同意。 ol'fiddler是必不可少的工具,我想我必須每天都使用它。剛剛讓我思考,爲了表示我的支持,我只是在谷歌中爲小提琴手+1了! :-) –