2011-08-03 10 views
7

Przeprowadzam testy moich przekierowań HTTP 301 (przeniesione na stałe) do aplikacji sieci web ASP.NET MVC.C# HttpWebRequest - Jak ustalić, czy wystąpił błąd HTTP 301?

Utworzyłem stronę testową z następującego kodu:

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(); 
} 

Ale jest problem, kod stanu jest HTTP 200 (OK), ponieważ czyta ostatnią odpowiedź (np strona zrobiło przekierowany na).

URL trafi mój kontroler przekierowania, która zwraca to:

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

I to jest to, co chcę, aby uchwycić, a nie 200 strony pobiera przekierowany do.

Jak to zrobić?

Odpowiedz

1

Set AllowAutoRedirect true jeśli chcesz żądanie automatycznie śledzić nagłówki HTTP przekierowania do nowej lokalizacji zasobu.

Jeśli wartość AllowAutoRedirect jest ustawiona na wartość false, wszystkie odpowiedzi z kodem stanu HTTP od 300 do 399 są zwracane do aplikacji.

można również ustawić maksymalną liczbę przekierowań do naśladowania przez właściwość MaximumAutomaticRedirections.

wykorzystanie tego, aby zatrzymać auto przekierowanie myHttpWebRequest.AllowAutoRedirect=false;

Powiązane problemy