.NET C# 使用HttpClient时忽略HTTPS证书

 

 

ServicePointManager.ServerCertificateValidationCallback = ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback( delegate { return true;//https请求 忽略证书,可以直接访问 } );

 

 

.NET中,HttpClient类通常用于发起HTTP请求。当使用HttpClient访问HTTPS资源,默认情况下会进行SSL/TLS证书验证。但是,在某些特定的开发或测试场景中,你可能需要忽略SSL证书的验证。虽然在生产环境中忽略SSL证书验证是不安全的,但在控制环境下,可以通过以下几种方式来实现忽略HTTPS证书认证: 1. 使用WebClient类: WebClient类允许你在创建实例通过设置`ServicePointManager.ServerCertificateValidationCallback`委托来忽略SSL证书验证。 ```csharp using (var client = new WebClient()) { ServicePointManager.ServerCertificateValidationCallback = delegate { return true; }; // 发起请求的代码 } ``` 2. 使用HttpClient和自定义的HttpClientHandler: HttpClientHandler类允许你通过设置`ServerCertificateCustomValidationCallback`委托来实现相同的效果。 ```csharp var handler = new HttpClientHandler(); handler.ServerCertificateCustomValidationCallback = delegate { return true; }; var client = new HttpClient(handler); // 发起请求的代码 ``` 3. 使用HttpWebRequest和ServicePointManager: 在.NET Framework中,你也可以使用`HttpWebRequest`类和`ServicePointManager`来忽略证书验证。 ```csharp ServicePointManager.ServerCertificateValidationCallback = delegate { return true; }; var request = (HttpWebRequest)WebRequest.Create("https://example.com"); // 发起请求的代码 ``` 请注意,上述方法虽然能够忽略SSL证书验证,但这会使应用程序容易受到中间人攻击,因此只应在完全信任的内部网络或测试环境中使用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值