728x90
300x250

[ASP.NET] C# 환경에서 URL 호출 - HttpWebResponse, HttpWebRequset

 

System.Net을 이용하여 처리하는 방법도 있겠으며, External URL에 관한 처리 방법은 다양합니다.
Stream으로 외부 URL을 원격으로 호출하는 방법에 관해 소개하겠습니다.

 


1. 구현

 

Namespace 선언

System.Text;

System.IO;

System.Web;

 

대상 URL 선언

string TargetURL = http://외부주소/index.do;

 

HttpWebRequest의 선언

HttpWebRequest gomRequest = (HttpWebRequest)WebRequest.Create(TargetURL);

 

HttpWebResponse의 선언

HttpWebResponse ckResponse = (HttpWebResponse)gomRequest.GetResponse();

 

응용) C# 환경에서 URL을 호출하여 Stream으로 받는 예제

 

Java 환경에서 URLConnection 과 같은 기능을 구현해보게 되었다.

특정 URL로 POST 방식으로 호출을 한 후 응답을 String 받는 기능을 수행한다.

HttpWebResponse 객체를 이용하여 Java의 URLConnection 와 동일하게 이용한다.

 

 

StringBuilder postParams = new StringBuilder();

postParams.Append("id=" + "abcd");

postParams.Append("&pw=" + "1234");

 


Encoding encoding = Encoding.UTF8;

byte[] result = encoding.GetBytes(postParams.ToString());

 


// 타겟이 되는 웹페이지 URL

string Url = "http://localhost:8080/MavenEULI/index.do";    //~~~~/login.php;  //수정해주세요.

HttpWebRequest wReqFirst = (HttpWebRequest)WebRequest.Create(Url);

 // HttpWebRequest 오브젝트 설정

 


wReqFirst.Method = "POST";

wReqFirst.ContentType = "application/x-www-form-urlencoded";

wReqFirst.ContentLength = result.Length;

 

 

 

Stream postDataStream = wReqFirst.GetRequestStream();

postDataStream.Write(result, 0, result.Length);

postDataStream.Close();

HttpWebResponse wRespFirst = (HttpWebResponse)wReqFirst.GetResponse();

 


// Response의 결과를 스트림을 생성합니다.

Stream respPostStream = wRespFirst.GetResponseStream();

StreamReader readerPost = new StreamReader(respPostStream, Encoding.UTF8);

 


// 생성한 스트림으로부터 string으로 변환합니다.

string resultPost = readerPost.ReadToEnd();

 


txt1.Text = resultPost;

 

 


2. 참고자료(Reference)

 

1. MSDN - HttpWebResponse 클래스, http://msdn.microsoft.com/ko-kr/library/system.net.httpwebresponse(v=vs.110).aspx, 접속일자 2013-12-16

2. MSDN - HttpWebRequest - 클래스를 사용하여 데이터 전송, http://msdn.microsoft.com/ko-kr/library/debx8sh9(v=vs.110).aspx, 접속일자 2013-12-16

반응형

+ Recent posts