繁体   English   中英

如何修复“无法建立 SSL 连接,请参阅内部异常。” 尝试下载 osu! 化身

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM