首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HTTPS Mono - Error:某些域的SecureChannelFailure -HTTPS请求失败

问HTTPS Mono - Error:某些域的SecureChannelFailure -HTTPS请求失败
EN

Stack Overflow用户
提问于 2017-07-03 07:53:43
回答 1查看 669关注 0票数 1

在阅读了关于这个问题的所有问题几个小时后,我别无选择,只能自己发帖。我有一个非常简单的C#代码,从网址返回html代码:

代码语言:javascript
复制
string url = "https://www.google.fr";
var encoding = Encoding.GetEncoding("iso-8859-1");
using (WebClient client = new WebClient())
{
     string html = new StreamReader(client.OpenRead(url), encoding).ReadToEnd();
     Console.Write(html);
}

在大多数情况下,这个程序都会返回一个结果,除了一些会导致异常的域:

代码语言:javascript
复制
 Mono.Security.Protocol.Tls.TlsException: The authentication or decryption has failed.

我尝试了其他问题的所有方法,但没有人能解决我的问题。我已经尝试像这样重写:

代码语言:javascript
复制
 ServicePointManager.ServerCertificateValidationCallback = delegate(object s, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors) { return true; };

这个问题来自Mono,因为在Mono上不工作的域名在Windows10上可以正常工作。我如何避免这个异常?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-16 22:21:53

经过一天又一天的寻找解决方案,我明白我必须使用一个技巧,因为错误来自Mono。

这不是正确的方法,而是最简单的方法。

我使用了一个免费的域名来托管一个php文件,该文件在domain.com/myfile.php中包含以下内容:

代码语言:javascript
复制
<?php echo file_get_contents("url of the website"); ?>

然后,我没有使用导致问题的url,而是将其替换为C#中的PHP文件的链接。

代码语言:javascript
复制
string url = "domain.com/myfile.php";
using (WebClient client = new WebClient())
{
    string html = client.DownloadString(url);
    lines = Regex.Split(html, @"\r?\n|\r");
    client.Dispose();
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44876171

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档