반응형

//로그인에 필요한 데이터...  
 string postData = "a=124&b=344";   

 HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create("데이터를 전송할 URI");

 

  //인코딩은 서버에서 처리하고 있는 인코딩으로 지정해주세요.

  //대부분의 사이트는 Defalt 혹은 euc-kr로 하면 되는 것 같습니다.

  byte[] byteArray = Encoding.GetEncoding("ks_c_5601").GetBytes(postData);

 

  httpWebRequest.Method = "POST";
  httpWebRequest.ContentType = "application/x-www-form-urlencoded";
  httpWebRequest.ContentLength = byteArray.Length;

            httpWebRequest.CookieContainer = new CookieContainer();

            //저장된 쿠키콜렉션이 있을 경우에는 쿠키를 포함해서 전송한다.
            if (_CookieContainer.ContainsKey(txtID.Text))
                httpWebRequest.CookieContainer.Add(_CookieContainer[txtID.Text]);

            Stream stream = httpWebRequest.GetRequestStream();

            stream.Write(byteArray, 0, byteArray.Length);
            stream.Close();

            HttpWebResponse httpWebResponse = (HttpWebResponse)httpWebRequest.GetResponse();

            //로그인 후 서버로부터 받은 쿠키콜렉션을 특정 자료구조에 저장해 놓았다가
            //로그인 후의 페이지를 요청하게 될 때 사용한다.
            if (!_CookieContainer.ContainsKey(txtID.Text))
                _CookieContainer.Add(txtID.Text, httpWebResponse.Cookies);
            else
            {
                //로그인 후에 다른 페이지를 접속했을 경우 
                //쿠키를 추가하게 되는 경우가 있으므로 
                //이럴 때는 기존에 갖고 있던 쿠키에 추가하고 
                //자료 구조에 저장해놓는다.
                CookieCollection coo = _CookieContainer[txtID.Text];
                coo.Add(httpWebResponse.Cookies);
                _CookieContainer[txtID.Text] = coo;
            }

            Stream responseStream = httpWebResponse.GetResponseStream();

            //받을 때도 마찬가지로 서버에서 전송해주는 인코딩 방식으로 읽어주세요

            StreamReader streamReader = new StreamReader(responseStream, Encoding.GetEncoding("ks_c_5601"));

            string resultString = streamReader.ReadToEnd();
            
            
            Console.WriteLine(resultString);

 

//전송 데이터, URI, 수신 데이터 등의 자료는 이더리얼이라는 프로그램을 사용하시면 편합니다.

[출처] [스크랩핑] 특정 사이트 로그인해서 문서 가져오기. |작성자 코달

반응형

+ Recent posts