c# - 发送 HttpWebRequest 时出现 SSL/TLS 安全通道异常

标签 c# https get httpwebrequest

我在 C# 中有一个下载方法。该方法向要下载的 URL 发送请求。但它给出了一些 URL 地址的错误。我遇到的最后一个 URL 是一个 exe 文件 link .

我的方法:

    void DownloadProcedure()
    {

        #region Request-Response

        req = WebRequest.Create(url) as HttpWebRequest;
        req.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)";
        req.AllowAutoRedirect = true;
        req.MaximumAutomaticRedirections = 5;
        req.ServicePoint.ConnectionLimit += 2;
        req.ServicePoint.Expect100Continue = true;
        req.ProtocolVersion = HttpVersion.Version10;
        ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls
            | SecurityProtocolType.Tls11
            | SecurityProtocolType.Tls12
            | SecurityProtocolType.Ssl3;
        // allows for validation of SSL conversations
        ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };
        if (rangeAllowed)
            req.AddRange(from, to);
        resp = req.GetResponse() as HttpWebResponse;

        #endregion

        //...bla bla...
     }  

GetResponse() 行的代码中,它抛出 Could not create SSL/TSL secure channel。但它并不总是扔掉它。有时文件下载成功,有时会抛出此异常。我不知道通过它的正确方法是什么。

那么我该如何解决这个问题呢?A

最佳答案

如果您在使用不同的网址时遇到此问题: 您正在强制使用 Http 1.0。目前,Http 1.0、1.1 和 2 可用。愿你不应该用 Http 1.0 来限制你自己。 此外,一些服务器仍在使用旧的 SSL 版本,因此您可能想添加对它们的支持...

关于c# - 发送 HttpWebRequest 时出现 SSL/TLS 安全通道异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40497237/

相关文章:

c# - 公开原始模型而不是单个属性时的 INotifyPropertyChanged

c# - x86 和 x64 上的双重格式不同

Wordpress 多站点 SSL 问题

c# - UWP - while 循环中的 HttpClient 仅执行一次 GET 并返回与第一个执行值相同的字符串

get - GET 请求响应的大小

java - 在 GET Rest 资源中发送 JSON -curl 和代码具有不同的行为

c# - 在类级别定义的 private const 然后在属性上使用,为什么会编译?

c# - 序列化 ScriptableObject 引用 (InstanceID)

android - 如何防止数据包捕获解密我的 SSL 连接

Tomcat:在 Windows 上创建本地 keystore 的问题