我們檢測到您的瀏覽器不兼容傳輸層安全協議 (TLS) 1.1 或更高版本,此協議在 Internet 上用於確保您通信的安全性。


早上使用.Net WebClient類采集亞馬遜數據,返回http 400 Bad Request錯誤,內容里面有“我們檢測到您的瀏覽器不兼容傳輸層安全協議 (TLS) 1.1 或更高版本,此協議在 Internet 上用於確保您通信的安全性。

所以就想着可能是WebClient使用TLS版本過低,查了下資料,全局加上這段代碼。

            ServicePointManager.ServerCertificateValidationCallback += ValidateRemoteCertificate;
            ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
View Code
        /// <summary>
        /// Certificate validation callback.
        /// </summary>
        private static bool ValidateRemoteCertificate(object sender, X509Certificate cert, X509Chain chain, SslPolicyErrors error)
        {
            // If the certificate is a valid, signed certificate, return true.
            if (error == System.Net.Security.SslPolicyErrors.None)
            {
                return true;
            }

            Console.WriteLine("X509Certificate [{0}] Policy Error: '{1}'",
                cert.Subject,
                error.ToString());

            return false;
        }
View Code

 

參考鏈接:https://stackoverflow.com/questions/20064505/requesting-html-over-https-with-c-sharp-webclient


免責聲明!

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



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