HTTPWebRequest 无法创建 SSL/TLS 安全通道
HTTPWebRequest Could not create SSL/TLS secure channel
我正在尝试使用 HttpWebRequest(控制台应用程序)调用 Web API。
要上传文件,我正在使用@Cristian Romanescu 提供的代码片段来回答这个问题
如果我将 req.ProtocolVersion 设置为 HttpVersion.Version10,当我尝试执行 req.GetResponseStream().
[=12= 时收到错误请求]
如果我将 req.ProtocolVersion 设置为 HttpVersion.Version11,我得到 Could not create SSL/TLS secure channel. 当我尝试做 req.GetResponseStream().
如果尝试使用 POSTMAN post 数据,但即使是 Postman 也说 无法得到任何响应"。
如果我尝试使用 IE-11 访问 URL,我会收到 HTTP 404。[我知道我没有 post 实际文件],但 Chrome 显示custom/appropriate 错误信息。
我尝试了 Whosebug 上已经提供的解决方案,但不幸的是它们没有解决我的问题。
谢谢。
您尝试过哪种解决方案?如果您还没有尝试以下内容,那么值得尝试 - 在实际调用服务之前写下以下内容:
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;
尝试从您的服务器创建自签名证书并将其添加到您的客户端计算机。
我做错了两件事。
服务器需要 yyyy-MM-ddTHH:mm:ss 格式的日期,我以 yyyy-MM-ddTHH:mm:ss.ssss 格式提供日期(DateTime.UtcNow.ToString("o"))。这是 Could not create SSL/TLS secure channel
的原因
服务器也需要请求正文中的参数。我只将参数作为查询字符串传递。这是 HTTP 404
的原因
在这个过程中,我请了团队外的一个人帮忙。他让我看看是否有任何与 SSL 相关的错误。为此,他让我添加
System.Net.ServicePointManager.ServerCertificateValidationCallback = new System.Net.Security.RemoteCertificateValidationCallback(AcceptAllCertifications);
并定义 AcceptAllCertifications
,但事实并非如此。所以要解决这个问题,我必须处理上面提到的事情。
我正在尝试使用 HttpWebRequest(控制台应用程序)调用 Web API。
要上传文件,我正在使用@Cristian Romanescu 提供的代码片段来回答这个问题
如果我将 req.ProtocolVersion 设置为 HttpVersion.Version10,当我尝试执行 req.GetResponseStream().
[=12= 时收到错误请求]
如果我将 req.ProtocolVersion 设置为 HttpVersion.Version11,我得到 Could not create SSL/TLS secure channel. 当我尝试做 req.GetResponseStream().
如果尝试使用 POSTMAN post 数据,但即使是 Postman 也说 无法得到任何响应"。
如果我尝试使用 IE-11 访问 URL,我会收到 HTTP 404。[我知道我没有 post 实际文件],但 Chrome 显示custom/appropriate 错误信息。
我尝试了 Whosebug 上已经提供的解决方案,但不幸的是它们没有解决我的问题。
谢谢。
您尝试过哪种解决方案?如果您还没有尝试以下内容,那么值得尝试 - 在实际调用服务之前写下以下内容:
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;
尝试从您的服务器创建自签名证书并将其添加到您的客户端计算机。
我做错了两件事。
服务器需要 yyyy-MM-ddTHH:mm:ss 格式的日期,我以 yyyy-MM-ddTHH:mm:ss.ssss 格式提供日期(DateTime.UtcNow.ToString("o"))。这是 Could not create SSL/TLS secure channel
的原因
服务器也需要请求正文中的参数。我只将参数作为查询字符串传递。这是 HTTP 404
的原因
在这个过程中,我请了团队外的一个人帮忙。他让我看看是否有任何与 SSL 相关的错误。为此,他让我添加
System.Net.ServicePointManager.ServerCertificateValidationCallback = new System.Net.Security.RemoteCertificateValidationCallback(AcceptAllCertifications);
并定义 AcceptAllCertifications
,但事实并非如此。所以要解决这个问题,我必须处理上面提到的事情。