在項目中調用了一條比較復雜的sql 寫的web api,調用的時候經常操作超時。

修改HttpWebRequest.Timeout與HttpWebRequest.KeepAlive
具體相關代碼如下:
/// <summary> /// 創建GET方式的HTTP請求 /// </summary> public static HttpWebResponse CreateGetHttpResponse(string url, int timeout, string userAgent, CookieCollection cookies) { HttpWebRequest request = null; if (url.StartsWith("https", StringComparison.OrdinalIgnoreCase)) { //對服務端證書進行有效性校驗(非第三方權威機構頒發的證書,如自己生成的,不進行驗證,這里返回true) ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(CheckValidationResult); request = WebRequest.Create(url) as HttpWebRequest; request.ProtocolVersion = HttpVersion.Version10; //http版本,默認是1.1,這里設置為1.0 } else { request = WebRequest.Create(url) as HttpWebRequest; } request.Method = "GET"; //設置代理UserAgent和超時 //request.UserAgent = userAgent; //request.Timeout = timeout; if (cookies != null) { request.CookieContainer = new CookieContainer(); request.CookieContainer.Add(cookies); } try { request.Timeout = Timeout.Infinite; request.KeepAlive = true; return request.GetResponse() as HttpWebResponse; } catch (WebException ex) { return (HttpWebResponse)ex.Response; } }
