【问题标题】:HTTPS HTML fetching not being reliable: some sites fails with - "Could not create SSL/TLS secure channel" [duplicate]HTTPS HTML 获取不可靠:某些站点因“无法创建 SSL/TLS 安全通道”而失败 [重复]
【发布时间】:2017-08-09 10:43:54
【问题描述】:

我正在创建一个应用程序,它将根据您在 Spotify 上收听的内容搜索歌词。为此,我需要从提供歌词的网站获取 html(是的,我知道,并不真正符合他们的 EULA,但它是供学校/私人使用的)。原来的功能(见下文)坏了,所以我决定对其他方式进行一些研究,因为在我看来这是无法使用 https 的功能。因此,在“快速”谷歌会话之后,我找到了another function,但是当我尝试访问 https://www.musixmatch.com(或该域上的另一个网址)时,它仍然给出相同的错误:System.Net.WebException occurred The request was aborted: Could not create SSL/TLS secure channel.

但是;当我使用 https://www.google.com 或 https://stackoverflow.com both 功能工作得很好。 与 Musixmatch 相比,这些网站有什么不同? 我是否错过了 SSL/TLS secure channel 的确切含义?我在谷歌上找到的东西告诉我它与 SSL (我是如何找到新功能的)有关,但鉴于它与其他 SSL 页面一起正常工作,我想肯定还有别的东西。我正在使用 HTMLAgilityPack,不确定这是否会有所不同。


原创功能

作为源变量,例如可以使用https://www.musixmatch.com/lyrics/Hundredth/Restless

public string retrieveLyrics()
{
    retrieveSource(true);
    var htmlWeb = new HtmlWeb();
    var documentNode = htmlWeb.Load(source).DocumentNode;

    var findclasses = documentNode
        .Descendants("p")
        .Where(d => d.Attributes["class"]?.Value.Contains("mxm-lyrics__content") == true);

    var text = string.Join(Environment.NewLine, findclasses.Select(x => x.InnerText));
    return text;
}

重复这个问题:为什么在使用https://www.google.com 之类的网站时该功能有效,但在https://www.musixmatch.com 上无效?

【问题讨论】:

  • 这取决于证书的设置方式。
  • 这通常是由于客户端和服务器之间的 TLS 协议不匹配。您使用的是哪个版本的 .net 和操作系统?您可以尝试这篇文章来解决并测试是否是他们的证书问题stackoverflow.com/a/2675183/797375
  • @i.net 我在 Win10 上使用 .NET 4.5.2
  • @Alexei Levenkov(将其标记为重复):请注意,接受的答案不是(直接)我的问题的答案。
  • @MagicLegend 接受对答案几乎没有任何意义——它只意味着 OP 出于任何原因喜欢它(包括有时接受完全错误的答案)。如果您认为重复项无法回答您的问题 - 请务必在帖子中 edit 澄清它是如何解决您的问题的(并且可能不接受此处的答案,因为这可能不是您想要的)。

标签: c#


【解决方案1】:

最可能的原因是这些网站使用不同的 TLS 版本。查看this answer。

尝试在您的代码之前执行此操作以启用所有可能的版本:

ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls
        | SecurityProtocolType.Tls11
        | SecurityProtocolType.Tls12
        | SecurityProtocolType.Ssl3;

【讨论】:

  • 是的,成功了。谢谢你:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-13
  • 2014-12-26
  • 2017-02-10
  • 2017-08-22
  • 2016-08-03
  • 2018-06-17
相关资源
最近更新 更多