WebClient的超时问题及解决
public class WebClientto : WebClient { /// <summary> /// 过期时间 /// </summary> public int Timeout { get; set; } public WebClientto(int timeout) { Timeout = timeout; } /// <summary> /// 重写GetWebRequest,添加WebRequest对象超时时间 /// </summary> /// <param name="address"></param> /// <returns></returns> protected override WebRequest GetWebRequest(Uri address) { HttpWebRequest request = (HttpWebRequest)base.GetWebRequest(address); request.Timeout = Timeout; request.ReadWriteTimeout = Timeout; return request; } }使用:
/// <summary> /// 获取url 内容 /// </summary> /// <param name="url"></param> /// <param name="name"></param> /// <returns></returns> public static string getResponseByEncodeUrl(string url, string name) { WebClient client = new WebClientto(4500); //设置4.5s超时时间 byte[] reply = client.DownloadData(url + HttpUtility.UrlEncode(name, Encoding.GetEncoding("GBK"))); if (reply == null || reply.Length == 0) { return "0"; } return Encoding.UTF8.GetString(reply); }
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。