诗林 发表于 2024-8-5 05:10:32

C#调用webapi HTTPS报错:基础连接已经关闭- 未能为 SSL-TLS 安全通道创建

1、起首参加定名空间:
using System.Net.Security;
using System.Security.Authentication;
using System.Security.Cryptography.X509Certificates;
SSL网站,连接时必要提供证书,对于非必须提供客户端证书的环境,只要返回一个安全确认即可。我的是.NET FrameWork4.0
2、参加以下代码:
public bool CheckValidationResult(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors)
    {
      //直接确认,否则打不开
      return true;
    }
3、接收证书进行身份验证ssl,在调用api接口前调用此方法:
ServicePointManager.ServerCertificateValidationCallback = new System.Net.Security.RemoteCertificateValidationCallback(CheckValidationResult);
以下是完整案例:
public string HttpPost(string url, string body)
    {
      Encoding encoding = Encoding.UTF8;
      string jsonText = string.Empty;
      string dataText1 = string.Empty;
      if (string.IsNullOrEmpty(url.Trim()))
      {
            return "";
      }
      //接收证书进行身份验证
      ServicePointManager.ServerCertificateValidationCallback =
            new System.Net.Security.RemoteCertificateValidationCallback(CheckValidationResult);
      //ServicePointManager.SecurityProtocol = (SecurityProtocolType)3072;
      HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
      request.Method = "POST";
      request.Accept = "text/plain, */*; q=0.01";
      request.ContentType = "application/json;charset=utf-8";
      byte[] buffer = encoding.GetBytes(body);
      request.ContentLength = buffer.Length;
      request.GetRequestStream().Write(buffer, 0, buffer.Length);
      HttpWebResponse response = (HttpWebResponse)request.GetResponse();
      using (StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8))
      {
            jsonText = reader.ReadToEnd();
            dataText1 = Regex.Replace(jsonText, @"\\", "");
      }
      return dataText1;
    }
调用:
dlbzUrl是调用地址 https://…/api/tddbzzljcxt/zybrxx/vnoentry-query
model.FCYRQSTART 开始时间
model.FCYRQEND 结束时间
string DaliBaiHospitalJson = HttpPost(dlbzUrl, "{\"FIDATES\":\"" + model.FCYRQSTART + " 00:00:00" + "\",\"FIDATEE\":\"" + model.FCYRQEND + " 23:59:59" + "\"}");
学习网络安全技能的方法无非三种:
第一种是报网络安全专业,现在叫网络空间安全专业,主要专业课程:步伐计划、计算机组成原理原理、数据结构、操纵体系原理、数据库体系、 计算机网络、人工智能、自然语言处理、社管帐算、网络安全法律法规、网络安全、内容安全、数字取证、机器学习,多媒体技能,信息检索、舆情分析等。
第二种是自学,就是在网上找资源、找教程,大概是想办法认识一-些大佬,抱紧大腿,不过这种方法很耗时间,而且学习没有规划,大概很长一段时间感觉本身没有进步,容易劝退。
假如你对网络安全入门感爱好,那么你必要的话可以点击这里
页: [1]
查看完整版本: C#调用webapi HTTPS报错:基础连接已经关闭- 未能为 SSL-TLS 安全通道创建