/// <summary> /// The begin request. /// </summary> /// <param name="url">The url.</param> /// <param name="callback">The callback.</param> /// <typeparam name="T">The type that the request is being made for</typeparam> public static void BeginRequest <T>(string url, Action <HttpResponse <T> > callback) { var client = new GZipWebClient(); var timer = new Timer(state => client.CancelAsync(), null, timeout, TimeSpan.FromMilliseconds(-1)); Debug.WriteLine("HTTP Request: {0}", url); client.DownloadStringCompleted += (s, e) => ProcessResponse(callback, e); client.DownloadStringAsync(new Uri(url, UriKind.Absolute), timer); }