GetURLAsync
using System;
using System.IO;
using System.Net;
using System.Threading;
/// <summary>
/// 使用异步机制的例子
/// </summary>
public class CAsync
{
const int MAX = 1024;
public static int Main88()
{
Uri HttpSite;
HttpWebRequest wreq;
IAsyncResult r;
HttpSite = new Uri("http://localhost");
wreq = (HttpWebRequest)WebRequest.Create(HttpSite);
r = (IAsyncResult)wreq.BeginGetResponse(new AsyncCallback(RespCallback), null);
Thread.Sleep(3000);
Console.WriteLine("Exiting.");
return 0;
}
private static void RespCallback(IAsyncResult ar)
//private static void RespCallback(AsyncCallback ar)
{
HttpWebRequest req;
HttpWebResponse resp;
int BytesRead;
StreamReader Reader;
StringWriter Writer;
// 构建HttpWebRequest和HttpWebResponse实例
req = (HttpWebRequest)ar;
resp = (HttpWebResponse)req.EndGetResponse(ar);
BytesRead = 0;
char[] Buffer = new char[MAX];
// 实例化读、写流
Reader = new StreamReader(resp.GetResponseStream(), System.Text.Encoding.UTF8);
Writer = new StringWriter();
// 读写数据到缓冲区
BytesRead = Reader.Read(Buffer, 0, MAX);
while (BytesRead != 0)
{
Writer.Write(Buffer, 0, MAX);
BytesRead = Reader.Read(Buffer, 0, MAX);
}
Console.WriteLine("Message = " + Writer.ToString());
}
}
posted on 2011-11-15 22:31 breakpoint 阅读(99) 评论(0) 编辑 收藏 举报