public void SendAsyncRequest(string serviceUrl, HttpRequestComleteHandler httpRequestComleted)
        {
            if (!Uri.IsWellFormedUriString(serviceUrl, UriKind.RelativeOrAbsolute))
                throw new ArgumentException("Invalid URL");

            base.AddListener(httpRequestComleted);

            try
            {
                var httpWebRequest = (HttpWebRequest)WebRequest.Create(serviceUrl);
                httpWebRequest.Method = "GET";
                httpWebRequest.AllowReadStreamBuffering = false;
                httpWebRequest.Accept = "text/json";
                httpWebRequest.Timeout = 3000;
                httpWebRequest.BeginGetResponse(ResponseCallback, httpWebRequest);
            }
            catch
            {
                throw new TimeoutException("Request Timeout");
            }
        }
 public void RemoveListener(HttpRequestComleteHandler httpRequestComletedCallback)
 {
     this.HttpRequestComleted -= httpRequestComletedCallback;
 }
 public void AddListener(HttpRequestComleteHandler httpRequestComletedCallback)
 {
     this.HttpRequestComleted += httpRequestComletedCallback;
 }