我正在尝试检查url的重定向位置,但总是得到错误的结果。例如,对于url,它重定向到http://www.lotus-air.com,找到的重定向类型为302 (您可以在此服务的http://www.internetofficer.com/seo-tool/redirect-check/上测试它),但是我将"http://mobile.yellowpages.com.eg/“作为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();谢谢。
耶伊亚
发布于 2011-06-29 17:59:28
正如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。
发布于 2011-06-29 17:48:40
它们可能会根据用户代理发送不同的重定向,因此您在浏览器中会得到一个结果,而在代码中会得到另一个结果。
发布于 2011-06-29 17:57:36
您可以使用HTTP调试代理来了解来回移动的头,并允许您更改用户代理以帮助测试Ben的理论(我+1'd )。
一个很好的例子是Fiddler - Web Debugging Proxy免费且易于使用。
下面的屏幕截图显示了我将用户代理更改为旧的IEMobile用户代理"Mozilla/4.0 (compatible;MSIE6.0;Windows CE;IEMobile 6.12;en-US;KIN.Two 1.0)",它将我重定向到mobile.yellowpages.com.eg
注:切换到ipad用户代理会将您带到iphone.yellowpages.com.eg

https://stackoverflow.com/questions/6518584
复制相似问题