2011-08-03 12 views
7

ASP.NET MVC WebアプリケーションのHTTP 301リダイレクト(永続的に移動)のテストを行っています。C#HttpWebRequest - 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(); 
} 

しかし、問題は、ステータスコードでは、HTTP 200(OK)である(それが得た例えばページにリダイレクトされます)。

URLはこれを返す私のリダイレクトコントローラ、ヒットします:

return RedirectToRoutePermanent("SomeRoute", new { id = someId }); 

をそして、それは私はそれがリダイレクトされるページの200、ではないキャプチャしたいものです。

どうすればよいですか?

答えて

1

セットAllowAutoRedirect trueにあなたがリクエストが自動的にリソースの新しい場所にHTTPリダイレクトヘッダをフォローしたい場合。

AllowAutoRedirectがfalseに設定されている場合、300〜399のHTTPステータスコードを持つすべての応答がアプリケーションに返されます。

また、MaximumAutomaticRedirectionsプロパティに従うリダイレクトの最大数を設定することもできます。

使用これを停止する自動リダイレクト myHttpWebRequest.AllowAutoRedirect=false;

関連する問題