C# 检测302重定向
我试图检查url的重定向位置,但总是得到错误的结果。例如,对于url,它重定向到,并找到类型为redirect 302(您可以在此服务上测试它),但是我得到“http://mobile.yellowpages.com.eg/作为webResp.GetResponseHeader(“位置”)。我的代码如下:C# 检测302重定向,c#,url,redirect,response.redirect,C#,Url,Redirect,Response.redirect,我试图检查url的重定向位置,但总是得到错误的结果。例如,对于url,它重定向到,并找到类型为redirect 302(您可以在此服务上测试它),但是我得到“http://mobile.yellowpages.com.eg/作为webResp.GetResponseHeader(“位置”)。我的代码如下: string url = @"http://www.yellowpages.com.eg/Mjg3NF9VUkxfMTEwX2h0dHA6Ly93d3cubG90dXMtYWl
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();
谢谢
Yehia他们可能基于用户代理发送不同的重定向,因此您在浏览器中得到一个结果,在代码中得到另一个结果。他们可能基于用户代理发送不同的重定向,因此,您可以在浏览器中得到一个结果,在代码中得到另一个结果。您可以使用HTTP调试代理来了解头的来回移动,并允许您更改用户代理以帮助测试Ben的理论(I+1) 一个好的是免费的,易于使用/ 下面的屏幕截图显示我将useragent更改为旧的IEMobile one“Mozilla/4.0(兼容;MSIE 6.0;Windows CE;IEMobile 6.12;en US;KIN.Two 1.0)”,这会将我重定向到mobile.yellowpages.com.eg n、 b.换成ipad用户代理会带你进入iphone.yellowpages.com.eg
您可以使用HTTP调试代理来了解前后移动的头,并使您能够更改用户代理以帮助测试Ben的理论(I+1) 一个好的是免费的,易于使用/ 下面的屏幕截图显示我将useragent更改为旧的IEMobile one“Mozilla/4.0(兼容;MSIE 6.0;Windows CE;IEMobile 6.12;en US;KIN.Two 1.0)”,这会将我重定向到mobile.yellowpages.com.eg n、 b.换成ipad用户代理会带你进入iphone.yellowpages.com.eg
正如Ben指出的,它基于用户代理重定向。只需添加一些用户代理(这是针对chrome的):
对我来说,它重定向到。正如Ben指出的,它基于用户代理重定向。只需添加一些用户代理(这是针对chrome的):
对我来说,它重定向到。+1我同意fiddler是这种调试的绝佳工具谢谢@Ben,我完全同意。小提琴手是必不可少的工具,我想我必须每天使用它。只是让我想,为了表示我的支持,我只是+1了谷歌的小提琴手!:-)+我同意fiddler是这种调试的绝佳工具谢谢@Ben,我完全同意。小提琴手是必不可少的工具,我想我必须每天使用它。只是让我想,为了表示我的支持,我只是+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";