C#实现异步GET的方法
本文实例讲述了C#实现异步GET的方法。分享给大家供大家参考。具体实现方法如下:
usingSystem; usingSystem.Collections.Generic; usingSystem.Configuration; usingSystem.IO; usingSystem.Linq; usingSystem.Net; usingSystem.Text; usingSystem.Threading.Tasks; namespaceWebClientAsynProject { publicclassProgram { #regionHttpWebRequest异步GET publicstaticvoidAsyncGetWithWebRequest(stringurl) { varrequest=(HttpWebRequest)WebRequest.Create(newUri(url)); request.BeginGetResponse(newAsyncCallback(ReadCallback),request); } privatestaticvoidReadCallback(IAsyncResultasynchronousResult) { varrequest=(HttpWebRequest)asynchronousResult.AsyncState; varresponse=(HttpWebResponse)request.EndGetResponse(asynchronousResult); using(varstreamReader=newStreamReader(response.GetResponseStream())) { varresultString=streamReader.ReadToEnd(); Console.WriteLine(resultString); } } #endregion #regionWebClient异步GET publicstaticvoidAsyncGetWithWebClient(stringurl) { varwebClient=newWebClient(); webClient.DownloadStringCompleted+=newDownloadStringCompletedEventHandler(client_DownloadStringCompleted); webClient.DownloadStringAsync(newUri(url)); } privatestaticvoidclient_DownloadStringCompleted(objectsender,DownloadStringCompletedEventArgse) { //Console.WriteLine(e.Cancelled); Console.WriteLine(e.Error!=null?"WebClient异步GET发生错误!":e.Result); } #endregion #regionWebClient的OpenReadAsync测试 publicstaticvoidTestGetWebResponseAsync(stringurl) { varwebClient=newWebClient(); webClient.OpenReadCompleted+=newOpenReadCompletedEventHandler(webClient_OpenReadCompleted); webClient.OpenReadAsync(newUri(url)); } privatestaticvoidwebClient_OpenReadCompleted(objectsender,OpenReadCompletedEventArgse) { if(e.Error==null) { varstreamReader=newStreamReader(e.Result); varresult=streamReader.ReadToEnd(); Console.WriteLine(result); } else { Console.WriteLine("执行WebClient的OpenReadAsync出错:"+e.Error); } } #endregion publicstaticvoidMain(string[]args) { AsyncGetWithWebRequest("http://baidu.com"); Console.WriteLine("hello"); AsyncGetWithWebClient("http://baidu.com"); Console.WriteLine("world"); TestGetWebResponseAsync("http://baidu.com"); Console.WriteLine("jxqlovejava"); Console.Read(); } } }
希望本文所述对大家的C#程序设计有所帮助。