检测302重定向

时间:2011-06-29 09:39:26

标签: c# url redirect response.redirect

我正在尝试检查网址的重定向位置,但总是得到错误的结果。例如,对于网址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/“as webResp.GetResponseHeader(”Location“)。我的守则如下:

        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();

感谢。

叶海亚

3 个答案:

答案 0 :(得分:3)

他们可能会根据用户代理发送不同的重定向,因此您可以在浏览器中获得一个结果,在代码中获得另一个结果。

答案 1 :(得分:2)

您可以使用HTTP调试代理来了解来回移动的标题,并使您能够更改用户代理以帮助测试Ben的理论(I + 1)。

一个好的Fiddler - Web Debugging Proxy免费且易于使用/

下面的截图显示我将useragent更改为旧的IEMobile“Mozilla / 4.0(兼容; MSIE 6.0; Windows CE; IEMobile 6.12; en-US; KIN.Two 1.0)”,将我重定向到mobile.yellowpages .com.eg

n.b。更改为ipad useragent会将您带到iphone.yellowpages.com.eg

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

答案 2 :(得分:1)

正如Ben指出的那样,它基于用户代理重定向。只需添加一些用户代理(这个用于chrome):

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