HttpWebRequest.GetResponse()操作超時


    在項目中調用了一條比較復雜的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;

            }
        }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM