------------------------------------------------------------------------------------
안녕하세요. 버미 입니다. 현재 일본에서 IT일을 하고 있는 놈입니다. 99년 부터 자바를
오랜기간 하다가 얼마전에 닷넷으로 전향한 놈 입니다. (하지만 아직도 자바를 사랑한답니다)
처음으로 닷넷에 관련된 글을 쓰게 되는군요.
자바에서 닷넷으로 넘어간지 어느정도 시간이 흘렀는데, 그 사이에 여러 프로젝트에서
필요한 기능을 만들기 위해 검색 또는 연구?해서 만들어낸 노하우?가 있습니다만,
이렇게 정리해서 블로그에 올리는것이 게을러서인지 잘 안되더군요.
그래도 더 잊어버리기 전에 정리해서 올릴까 합니다..
저 역시도 아직 초보 이므로 글에 문제가 있거나 소스에 문제가 있으면 언제든지
말씀해 주십시요.. 그럼 닷넷을 공부하는, 닷넷으로 프로젝트를 하시는분들에게 조금이라도
도움이 될 수 있도록 노력하겠습니다.. ^-^b
-----------------------------------------------------------------------------------
C#어플리케이션에서 웹페이지에 POST혹은 GET 작업을 처리해야 할 경우
HttpWebRequest,HttpWebResponse 클래스를 이용하여 간편히 처리할 수 있습니다.
본 글에서는 POST의 경우를 예로 들겠습니다.
처리 순서
1. POST방식으로 웹페이지에 넘길 데이터를 작성한다.
2. HttpWebRequest를 생성하여 필요한 설정을 한다.
3. 2번에서 작성한 HttpWebRequest로 부터 HttpWebResponse를 생성하여 결과를 확인한다.
예제소스
-----------------------------------------------------------------------------------
// POST할 데이터를 작성한다.
StringBuilder postParams = new StringBuilder();
postParams.Append("TEST1 = test1");
postParams.Append("&TEST2 = test2");
// Encoding을 정확하게 설정하지 않으면 위의 데이타가 제대로 전달되지 않는
// 경우가 있습니다. 확실히 하기 위해서는 타겟이 되는 웹사이트의 소스를 확인하여
// 어떤 코드셑을 쓰고 있는지 확인하여 아래에 설정하여 주십시요.
Encoding encoding = Encoding.UTF8;
result = encoding.GetBytes(postParams.ToString());
// 타겟이 되는 웹페이지 URL
string Url = "http://test.net"
// HttpWebRequest 오브젝트 생성
HttpWebRequest wReqFirst = (HttpWebRequest)WebRequest.Create(Url);
// HttpWebRequest 오브젝트 설정
wReqFirst.Method = "POST";
wReqFirst.ContentType = "application/x-www-form-urlencoded";
wReqFirst.ContentLength = postLogin.Length;
// POST할 데이터를 입력합니다.
Stream postDataStream = wReqFirst.GetRequestStream();
postDataStream.Write(postLogin, 0, postLogin.Length);
loginDataStream.Close();
// HttpWebRequest오브젝트로 부터 HttpWebResponse오브젝트를 생성합니다.
// HttpWebRequest오브젝트에 문제가 있을 경우 이부분에서 Exception이 발생합니다.
// 확실히 해두기 위해서는 try-catch로 핸들링 해줄 필요가 있습니다.
HttpWebResponse wRespFirst = (HttpWebResponse)wReqFirst.GetResponse();
// Response의 결과를 스트림을 생성합니다.
Stream respPostStream = wRespFirst.GetResponseStream();
StreamReader readerPost = new StreamReader(respPostStream, Encoding.Default);
// 생성한 스트림으로부터 string으로 변환합니다.
string resultPost = readerPost.ReadToEnd()
// 스트링으로 변환된 데이타는 웹페이지의 소스가 됩니다. 그 데이터에서
// 하고자하는 확인 작업또는 취득 작업등을 하면 됩니다.
-----------------------------------------------------------------------------------
GET의 경우는 wReqFirst.Method 를 GET으로 바꿔주고 데이터를 GET형태로 변형해주면
작동할것입니다. (GET은 확인 하지 않았습니다.)
다음으로 여러 페이지에 대해서 POST처리를 할경우 세션 관리에 대해서 글을 쓸까 합니다.
'[ Program ] > C#' 카테고리의 다른 글
DataGridView 활용 Tip (0) | 2012.09.18 |
---|---|
BackgroundWorker 사용 (0) | 2012.09.18 |
C#으로 post 전송하기 (0) | 2012.09.18 |
[HowTo]Rijndael(AES) 암/복호화 코드(C#) (0) | 2012.09.18 |
RijndaelManaged 예제 (0) | 2012.09.18 |
댓글