.net 请求https接口时出现 基础连接已经关闭: 发送时发生错误,使用postman测试可以正常访问

在.NET后台代码中,调用HTTPS接口时可能会遇到‘基础连接已经关闭: 发送时发生错误’的问题。该错误通常由于SSL/TLS信任关系失败或安全协议不匹配导致。为解决此问题,可以重载`ValidateServerCertificate`方法,忽略证书错误,但这种方式不安全。另一种解决方法是硬编码设置`SecurityProtocol`为多种协议类型,或者允许操作系统自动选择安全协议。参考StackOverflow上的相关解答,可以找到适合的解决方案。
摘要由CSDN通过智能技术生成

在后台代码中进行基于https协议的请求时,我们经常会遇到一个错误:The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel(基础连接已经关闭: 未能为 SSL/TLS 安全通道建立信任关系。)

1,先加入命名空间:

using System.Net.Security;
using System.Security.Authentication;
using System.Security.Cryptography.X509Certificates;


2,再重载CheckValidationResult方法,返回true

private bool ValidateServerCertificate(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors)
{
     return true;
}

3.然后在执行请求的代码之前加上

ServicePointManager.ServerCertificateValidationCallback = ValidateServerCertificate;

通过以上三步忽略证书的错误,但是不安全,其他解决方式可以参考https://stackoverflow.com/questions/703272/could-not-e

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值