using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Text; namespace AutoUpdateEx { public class WebClientPro : WebClient { /// /// 过期时间 /// public int Timeout { get; set; } /// /// 设置请求超时时间 /// 默认30秒 /// /// 超时时间(ms) public WebClientPro(int timeout = 30000) { Timeout = timeout; } /// /// 重写GetWebRequest,添加WebRequest对象超时时间 /// /// /// protected override WebRequest GetWebRequest(Uri address) { //WebClient里上传下载的方法很多,但最终应该都是调用了这个方法 HttpWebRequest request = (HttpWebRequest)base.GetWebRequest(address); request.Timeout = Timeout; request.ReadWriteTimeout = Timeout; return request; } } }