'HttpWebRequest'에 해당되는 글 2건

Programming/.NET

System.Net.HttpWebRequest 는 HTTP 통신을 위한 요청을 자동으로 만들어 주며 System.Net.HttpWebResponse는 그에 대한 응답을 해석해주는 클래스입니다.

 

HttpWebRequest hwreq = (HttpWebRequest)WebRequest.Create("http://www.naver.com");
HttpWebResponse hwres = (HttpWebResponse)hwreq.GetResponse();

StreamReader sr = new StreamReader(hwres.GetResponseStream());
File.WriteAllText("default.htm", sr.ReadToEnd());
sr.Dispose();

Console.WriteLine("다 됐음");

 

우선 HttpWebRequest로 특성 URL에 대한 요청을 만들어 GetResponse 메서드로 응답을 받습니다. 이때 응답을 HttpWebResponse형식으로 받아 스트림으로 처리하면 응답내용을 확인할 수 있습니다.

 

WebClient는 쉽게 HttpWebRequest 와 HttpWebResponse를 좀더 추상화한 것으로 보면 됩니다. 너무 간단해서 설명조차 필요없을듯 합니다.

 

WebClient wc = new WebClient();
File.WriteAllText("default.htm", wc.DownloadString(http://www.naver.com/));

 

DownloadString 메서드는 요청에 대해 응답해오는 데이터를 문자열로 받아오도록 합니다. WebClient에는 이외에도 HTTP관련 다양한 메소드를 제공하고 있습니다.

'Programming > .NET' 카테고리의 다른 글

[C#] yield  (0) 2019.04.02
[C#] params  (0) 2019.03.19
[C#] HttpWebRequest / HttpWebResponse / WebClient  (0) 2019.03.12
[C#] 시프트(Shift) 연산자  (0) 2019.03.05
[C#] 예외처리(try ~ catch)  (0) 2019.02.19
[C#] ? / Nullable  (0) 2019.02.12
0 0
Programming/.NET

HttpWebRequest와 HttpWebResponse 클래스를 사용하면 HTTP 프로토콜로 특정 페이지를 호출하고 해당 페이지의 전체요소를 가져올 수 있습니다.

 

Uri url = new Uri("http://cliel.com");

if (url.Scheme == Uri.UriSchemeHttp) {
    HttpWebRequest hwr = (HttpWebRequest)HttpWebRequest.Create(url);
    hwr.Method = WebRequestMethods.Http.Get;

    HttpWebResponse hwres = (HttpWebResponse)hwr.GetResponse();
    StreamReader sr = new StreamReader(hwres.GetResponseStream());

    string s = sr.ReadToEnd();
    hwres.Close();

    MessageBox.Show(s);
}

 

반대로 HTTP프로토콜을 통해 데이터를 보내는 것도 가능한데 위 예제의 WebRequestMethods의 Get을 Post로 전환하는게 핵심입니다.

 

Uri url = new Uri("http://cliel.com");

string sdata = "userid=tmpuser&userpassword=tmppassword";

if (url.Scheme == Uri.UriSchemeHttp) {
    HttpWebRequest hwr = (HttpWebRequest)HttpWebRequest.Create(url);
    hwr.Method = WebRequestMethods.Http.Post;
    hwr.ContentLength = sdata.Length;
    hwr.ContentType = "application/x-www-form-urlencoded";

    System.IO.StreamWriter sw = new StreamWriter(hwr.GetRequestStream());
    sw.Write(sdata);
    sw.Close();

    HttpWebResponse hwres = (HttpWebResponse)hwr.GetResponse();
    StreamReader sr = new StreamReader(hwres.GetResponseStream());

    string s = sr.ReadToEnd();
    hwres.Close();

    MessageBox.Show(s);
}

 

만약 cliel.com 에 로그인 기능이 구현되었다고 가정한 경우 사용자 ID와 비밀번호를 Post로 전송하여 로그인된 최종 결과를 받아올 것입니다.

0 0
1
블로그 이미지

클리엘