![](/img/trans.png)
[英]How to fix 'One or more errors occurred. (The SSL connection could not be established, see inner exception.)'?
[英]How to fix "The SSL connection could not be established, see inner exception." when trying to download osu! avatar
我想下载 osu,avatars 来使用它们:但一直出现此错误:
无法建立 SSL 连接。
内部异常是:
System.Net.Http.HttpRequestException: 无法建立 SSL 连接,请参阅内部异常。 ---> System.Security.Authentication.AuthenticationException:身份验证失败,请参阅内部异常。 ---> System.ComponentModel.Win32Exception: Получено непредвиденное сообщение или оно имеет неправильный формат
示例 url: https://a.ppy.sh/10638551?1524507784.png
我尝试使用 HttpClient 和 WebClient 但没有成功。
using(HttpClient client = new HttpClient())
{
var resp = await client.GetAsync("https://a.ppy.sh/10638551?1547998515.jpeg");
var responseStr = await resp.Content.ReadAsStringAsync();
File.WriteAllText("html/avatars/avatar.jpeg", responseStr);
}
我找到了这个博客帮助我的解决方案
ServicePointManager.ServerCertificateValidationCallback += (sender, certificate, chain, errors) =>
{
// local dev, just approve all certs
if (development) return true;
return errors == SslPolicyErrors.None ;
};
https://www.khalidabuhakmeh.com/validate-ssl-certificate-with-servicepointmanager
我相信我们可能已经解决了这个确切的问题(或一个非常相似的问题)
在我们的例子中,我们得到了同样的异常,但奇怪的是只来自一台机器。
经过一些调查,我们使用此软件 ( https://www.nartac.com/Products/IISCrypto/Download ) 确定我们的盒子和我们试图联系的盒子之间没有共享密码套件。
我们使用该软件在我们的盒子上启用受支持的套件并重新启动。
一旦备份并运行,一切正常。
归根结底,这是一个机器配置问题,而不是编码问题。
[注意:我与这个软件或其公司没有任何关系,我确信可以使用其他方法来实现这一点,但我知道这对我们有用]
在使用 HttpClient 之前,您应该设置 HttpClientHandler;
var handler = new HttpClientHandler();
handler.ServerCertificateCustomValidationCallback +=
(sender, certificate, chain, errors) =>
{
return true;
};
仅比您的 HttpClient 代码。 必须适用于 .net Core 3.*
一段时间后,我发现我使用的库有点糟糕。 之后我发现了Selenium 。
考虑到这一点,我开始使用 Selenium WebDriver 并认为我可以截取我需要的页面的屏幕截图,然后我裁剪了该图像并得到了我需要的内容。
所以没有必要继续这个问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.