首页 > 解决方案 > 发送 HTTPS 获取请求 C# 时出错

问题描述

我有此代码可将 Http Get Request 发送到 https URL,但出现此错误:

无法从传输连接读取数据:现有连接被远程主机强行关闭。

var webRequest = (HttpWebRequest)WebRequest.Create(url);
            webRequest.Timeout = timeout;//timeout 100 sec by default

            using (var httpWebResponse = (HttpWebResponse)webRequest.GetResponse())
            using (var stream = httpWebResponse.GetResponseStream())
            using (var streamReader = new StreamReader(stream))
            {
                var response = streamReader.ReadToEnd();
                return response;
            }

该 URL 在浏览器和邮递员中运行良好。

标签: c#apihttphttpsget

解决方案


尝试将此代码添加到您的WebRequest.Create(url);

如果您使用的是 .Net Framework 4.0

System.Net.ServicePointManager.SecurityProtocol =SecurityProtocolType.Tls | (SecurityProtocolType)768 | (SecurityProtocolType)3072;

如果您使用的是 .Net Framework 4.5 及更高版本

System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;

推荐阅读