C#HttpWebRequest - 如何确定HTTP 301是否存在?

RPM*_*984 8 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 exc)
{
    return Json(new { statusCode = (int)HttpStatusCode.InternalServerError });
}
finally
{
    if (resp != null) resp.Close();
}
Run Code Online (Sandbox Code Playgroud)

但问题是,状态代码是HTTP 200(OK),因为它正在读取最后一个响应(例如它被重定向到的页面).

该URL将命中我的重定向控制器,它返回:

return RedirectToRoutePermanent("SomeRoute", new { id = someId });
Run Code Online (Sandbox Code Playgroud)

这就是我想要捕获的内容,而不是它被重定向到的200页面.

我该怎么做?

por*_*ges 14

您需要关闭以下自动重定向:

req.AllowAutoRedirect = false;
Run Code Online (Sandbox Code Playgroud)