public class RequestState { public HttpWebRequest request { get; set; } public HttpWebResponse response { get; set; } public Stream streamResponse { get; set; } } public class HttpHelper { public delegate void GetData(string text); public event GetData Data; public class HttpCallBackEvent { public HttpWebRequest request; public byte[] file; public string name; public string fileName; } public static ManualResetEvent allDone = new ManualResetEvent(false); public Stream HttpGet(string url ) { HttpWebRequest request = (HttpWebRequest)WebRequest.Create(new Uri(url)); request.Method = "GET"; RequestState state = new RequestState(); state.request = request; request.BeginGetResponse(webResponseCallack,state); allDone.Reset(); allDone.WaitOne(); return state.streamResponse; } private void webResponseCallack(IAsyncResult result) { try { RequestState state = (RequestState)result.AsyncState; HttpWebRequest request = state.request; state.response = (HttpWebResponse)request.EndGetResponse(result); state.streamResponse = state.response.GetResponseStream(); } catch { } finally { allDone.Set(); } }
}