C#HttpWebRequest-如何确定是否发生HTTP 301?

C#HttpWebRequest-如何确定是否发生HTTP 301?,c#,asp.net,asp.net-mvc,httpwebrequest,http-status-code-301,C#,Asp.net,Asp.net Mvc,Httpwebrequest,Http Status Code 301,我正在为ASP.NET MVC web应用程序测试HTTP 301重定向(永久移动) 我使用以下代码创建了一个测试页面: try { var req = (HttpWebRequest) WebRequest.Create(url); resp = (HttpWebResponse) req.GetResponse(); return Json(new {statusCode = (int) resp.StatusCode}); } catch (Exception

我正在为ASP.NET MVC web应用程序测试HTTP 301重定向(永久移动)

我使用以下代码创建了一个测试页面:

try
{
    var req = (HttpWebRequest) WebRequest.Create(url);
    resp = (HttpWebResponse) req.GetResponse();
    return Json(new {statusCode = (int) resp.StatusCode});  
}
catch (Exception exc)
{
    return Json(new { statusCode = (int)HttpStatusCode.InternalServerError });
}
finally
{
    if (resp != null) resp.Close();
}
但问题是,状态代码是HTTP200(OK),因为它正在读取最后一个响应(例如,它被重定向到的页面)

URL将命中我的重定向控制器,它将返回以下内容:

return RedirectToRoutePermanent("SomeRoute", new { id = someId });
这就是我想要捕捉的,而不是它被重定向到的页面的200

如何操作?

您需要关闭:


如果希望请求自动跟随HTTP重定向头到达资源的新位置,请将
AllowAutoRedirect
设置为true

如果
AllowAutoRedirect
设置为false,则HTTP状态代码从300到399的所有响应都将返回到应用程序

您还可以通过
MaximumAutomaticRedirections
属性设置重定向的最大数量

使用此选项可停止自动重定向
myHttpWebRequest.AllowAutoRedirect=false

req.AllowAutoRedirect = false;