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 ();
}
}
}