using System; using System.Net; namespace Crosstales.Radio.Util { public class CTWebClient : WebClient { public int Timeout { get; set; } public int ConnectionLimit { get; set; } public CTWebClient() : this(5000) { } public CTWebClient(int timeout, int connectionLimit = 20) { Timeout = timeout; ConnectionLimit = connectionLimit; } protected override WebRequest GetWebRequest(Uri uri) { WebRequest webRequest = base.GetWebRequest(uri); if (webRequest.GetType() == typeof(HttpWebRequest)) { HttpWebRequest httpWebRequest = (HttpWebRequest)base.GetWebRequest(uri); if (httpWebRequest != null) { httpWebRequest.ServicePoint.ConnectionLimit = ConnectionLimit; httpWebRequest.Timeout = Timeout; return httpWebRequest; } } return webRequest; } public WebRequest CTGetWebRequest(string uri) { return GetWebRequest(new Uri(uri)); } } }