Call API System.Net.Http.HttpRequestException 无法建立SSL连接

本文介绍了在使用HttpClient通过HTTPS请求时遇到SSL证书错误的解决方案,包括绕过证书验证、设置特定的SecurityProtocol以及处理程序间网络通讯权限问题。
摘要由CSDN通过智能技术生成

地址是https的,用httpClient请求,有个问题,SSL证书不正确,参考网上一些给出的答案整理如下。

报错如下:

System.Net.Http.HttpRequestException: The SSL connection could not be established, see inner exception.

解决方案

1、绕过https证书

var httpClientHandler = new HttpClientHandler();
httpClientHandler.ServerCertificateCustomValidationCallback = (message, cert, chain, error) => true; 
HttpClient client = new HttpClient(httpClientHandler);

2、使用SecurityProtocol定义安全协议

SecurityProtocolType枚举包含以下成员:
Ssl3: 表示使用SSL 3.0协议。
Tls: 表示使用TLS 1.0协议。
Tls11: 表示使用TLS 1.1协议。
Tls12: 表示使用TLS 1.2协议。
Tls13: 表示使用TLS 1.3协议(在某些.NET版本中可能不可用)。
SystemDefault: 表示使用操作系统的默认安全协议。
也可以通过组合这些值(使用按位或运算符|)来指定多个协议,如
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Tls13;

在发送请求地址代码前定义安全协议,参考代码

HttpClient httpClient = new HttpClient();
System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
var ga= await httpClient.GetAsync(url);

3、部署程序服务器与API服务器之间的网络通讯权限问题

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值