글 작성자: 써니루루

자료 출처 : http://hugeflow.com/


Silverlight network

WebClient vs WebRequest



실버라이트 2.0에는 동기방식의 통신은 없애고 비동기 통신만 남겨두었다.

이 방식을 사용하기에 WebClient와 WebRequest 두가지를 사용할 수 있는데.

WebClient가 약간 더 코드가 간결하고 WebRequest는 어렵다. 하지만 크게 어려운 것은 아니다.

다음의 기본 사용 예로 설명을 대신하도록 한다.


WebClient

 

WebClient wc = new WebClient();

wc.DownloadStringCompleted += new DownloadStringCompletedEventHandler(wc_DownloadStringCompleted);

wc.DownloadStringAsync(new Uri("http://hugeflow.com/sample.xml", UriKind.RelativeOrAbsolute));

void wc_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)

{

        string result = e.Result;

}




HttpWebRequest

 

HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(new Uri("http://hugeflow.com/sample.xml", UriKind.Absolute));

request.BeginGetRequestStream(new AsyncCallback(ReadCallback), request);

private void ReadCallback(IAsyncResult asynchronousResult)

{

        HttpWebRequest request = (HttpWebRequest)asynchronousResult.AsyncState;

        HttpWebResponse response = (HttpWebResponse)request.EndGetResponse(asynchronousResult);

        using (StreamReader reader = new StreamReader(response.GetResponseStream()))

        {

                string result = reader.ReadToEnd();

        }

}