【发布时间】: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#