早上使用.Net WebClient類採集亞馬遜數據,返回http 400 Bad Request錯誤,內容裏面有「咱們檢測到您的瀏覽器不兼容傳輸層安全協議 (TLS) 1.1 或更高版本,此協議在 Internet 上用於確保您通訊的安全性。」html
因此就想着多是WebClient使用TLS版本太低,查了下資料,全局加上這段代碼。web
ServicePointManager.ServerCertificateValidationCallback += ValidateRemoteCertificate;
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
/// <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; }
參考連接:https://stackoverflow.com/questions/20064505/requesting-html-over-https-with-c-sharp-webclient瀏覽器