-- C#

자동 리디렉션을 너무 많이 시도했습니다. (Too many automatic redirections attempted)

어린왕자악꿍 2012. 10. 25. 13:44
아래와 같이 HttpWebRequest를 사용하여 웹페이지 요청을 할 경우가 있는데, 특정 사이트의 경우 "자동 리디렉션을 너무 많이 시도했습니다"라는 예외가 발생하기도 한다. 

(req.GetResponse()에서 System.Net.WebException: Too many automatic redirections attempted 예외 발생)


HttpWebRequest req = (HttpWebRequest)WebRequest.Create(strURL);
req.Method = "POST";
req.ContentType = "application/x-www-form-urlencoded";

StreamWriter sw = new StreamWriter(req.GetRequestStream(), System.Text.Encoding.ASCII);
sw.Write(strParam);
sw.Close();
            
HttpWebResponse res = (HttpWebResponse)req.GetResponse();


검색을 통해 알아본 결과, 해당 웹페이지에서 Agent를 조사하여 웹브라우저에서 요청한 것이 아닌 경우 거절하기 때문인데, 아래와 같이 수정하여 예외를 없앨 수 있다.

HttpWebRequest req = (HttpWebRequest)WebRequest.Create(strURL);

req.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)";
req.Method = "POST";
req.ContentType = "application/x-www-form-urlencoded";

StreamWriter sw = new StreamWriter(req.GetRequestStream(), System.Text.Encoding.ASCII);
sw.Write(strParam);
sw.Close();
            
HttpWebResponse res = (HttpWebResponse)req.GetResponse();