【问题标题】:Error in sending HTTPS get request C#发送 HTTPS 获取请求 C# 时出错
【发布时间】:2018-08-07 05:54:34
【问题描述】:

我有此代码可以将 Http Get 请求发送到 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 在浏览器和邮递员中运行良好。

【问题讨论】:

  • 哪一行出现此错误?
  • @RakeshBurbure 使用 (var httpWebResponse = (HttpWebResponse)webRequest.GetResponse())
  • 尝试设置webRequest.KeepAlive=FalseWebRequest.ProtocolVersion = HttpVersion.Version10WebRequest.ServicePoint.ConnectionLimit = 1
  • 在上面添加这一行来创建网络请求并尝试System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;

标签: c# api http https get


【解决方案1】:

尝试将此代码添加到您的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;

【讨论】:

  • @ahmed,查看解决方案可能对您有帮助:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-07-31
  • 2011-05-13
  • 2021-05-24
  • 1970-01-01
  • 2021-04-22
  • 2018-01-19
  • 1970-01-01
相关资源
最近更新 更多