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

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

因此就想着多是WebClient使用TLS版本太低,查了下資料,全局加上這段代碼。web

            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瀏覽器

相關文章
相關標籤/搜索