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