7

ASP.NET MVC 웹 응용 프로그램에 대한 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 참으로 당신은 요청이 자동으로 리소스의 새 위치로 HTTP 리디렉션 헤더를 따르십시오.

AllowAutoRedirect이 false로 설정된 경우 300 - 399의 HTTP 상태 코드를 가진 모든 응답이 응용 프로그램에 반환됩니다.

MaximumAutomaticRedirections 속성에 따라 최대 리디렉션 수를 설정할 수도 있습니다.

사용이 중지 자동 재 myHttpWebRequest.AllowAutoRedirect=false;

관련 문제