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#程序设计有所帮助。