【发布时间】:2021-10-20 09:05:58
【问题描述】:
作为自动化测试的一部分,我在发送 HTTP 请求时遇到问题,我想检查 URL 的状态代码。当我发送请求时,我有一个例外:
System.AggregateException: '发生一个或多个错误。 (无法建立 SSL 连接,请参阅内部异常。)'
内部异常是:
HttpRequestException:无法建立 SSL 连接,请参阅内部异常。
IOException: Unable to read data from the transport connection: 一个现有的连接被远程主机强行关闭。
SocketException: 现有连接被远程主机强行关闭。
我的代码:
public HttpStatusCode SendRequest(string _url)
{
SetUrl(_url);
HttpClientHandler clientHandler = new HttpClientHandler();
clientHandler.ServerCertificateCustomValidationCallback += (sender, cert, chain, sslPolicyErrors) => { return true; };
clientHandler.SslProtocols = SslProtocols.Tls;
HttpClient client = new HttpClient(clientHandler);
var response = client.GetAsync(Url).Result;
StatusCode = response.StatusCode;
return StatusCode;
}
提前谢谢你!
【问题讨论】:
-
您拥有哪个版本的 Windows 和 .Net?服务器有哪个版本的 TLS?
-
@Charlieface Windows 10, .NET Core 5.0 关于 TLS,我真的不知道,因为它是为我们提供安全解决方案的外部公司。
-
在浏览器中打开,点击网址旁边的锁符号查看安全信息
-
@Charlieface 我在那里看到 V3 .. 是否意味着 SSL 3.0?
标签: c# http ssl httpclient