1 public class WebDownload : WebClient 2 { 3 /// <summary> 4 /// Time in milliseconds 5 /// </summary> 6 public int Timeout { get; set; } 7 8 public WebDownload() : this(600000) { } 9 10 public WebDownload(int timeout) 11 { 12 this.Timeout = timeout; 13 } 14 15 protected override WebRequest GetWebRequest(Uri address) 16 { 17 var request = base.GetWebRequest(address); 18 if (request != null) 19 { 20 request.Timeout = this.Timeout; 21 } 22 return request; 23 } 24 } 25 26 27 28 29 static void WebDownloadDemo() 30 { 31 string url = "https://tfetimes.com/wp-content/uploads/2015/09/c-gui-programming-with-qt-4-2ndedition.pdf"; 32 WebDownload wd = new WebDownload(); 33 byte[] data = wd.DownloadData(url); 34 File.WriteAllBytes("aaaa.pdf", data); 35 }
Webclient "The operation has timed out" and override webclient with customized timeout