您现在的位置是:首页 > 技术教程 正文

C#调用webapi HTTPS报错:基础连接已经关闭- 未能为 SSL-TLS 安全通道建立信任关系--安全证书问题

admin 阅读: 2024-04-01
后台-插件-广告管理-内容页头部广告(手机)

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; }
  • 1
  • 2
  • 3
  • 4
  • 5

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; }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28

调用:
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

学习网络安全技术的方法无非三种:

第一种是报网络安全专业,现在叫网络空间安全专业,主要专业课程:程序设计、计算机组成原理原理、数据结构、操作系统原理、数据库系统、 计算机网络、人工智能、自然语言处理、社会计算、网络安全法律法规、网络安全、内容安全、数字取证、机器学习,多媒体技术,信息检索、舆情分析等。

第二种是自学,就是在网上找资源、找教程,或者是想办法认识一-些大佬,抱紧大腿,不过这种方法很耗时间,而且学习没有规划,可能很长一段时间感觉自己没有进步,容易劝退。

如果你对网络安全入门感兴趣,那么你需要的话可以点击这里

标签:
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

在线投稿:投稿 站长QQ:1888636

后台-插件-广告管理-内容页尾部广告(手机)
关注我们

扫一扫关注我们,了解最新精彩内容

搜索