Вот пример того, как сделать это синхронно
WebRequest request = WebRequest.Create(url);
request.Method = "GET";
request.ContentType = "text/html";
Stream reader = request.GetResponse().GetResponseStream();
а вот асинхронный образец
///........
WebRequest request = WebRequest.Create(url);
request.Method = "GET";
request.ContentType = "text/html";
IAsyncResult result = request.BeginGetResponse(RequestCallback, request);
///........
private void RequestCallback(IAsyncResult ar)
{
var request = ar.AsyncState as WebRequest;
Stream reader = request.EndGetResponse(ar).GetResponseStream();
//use this reader to read the content
}