C#Web客户端下载字符串HTTPS(C# WebClient Download String ht

2019-06-26 00:51发布

在web浏览器,我可以正常加载以下网址: https://security.ultimatxxxx.com:443/Serverstatus.ashx

当我做它:

Webclient.DownloadStringAsync("https://security.ultimatxxxx.com:443/Serverstatus.ashx");

出于测试目的,您可以拨打: ultimate-eur ,而不是ultimatxxxx

它不工作,但是当我加载一个正常的URL没有HTTPS我没有问题。 这说法我必须补充,使Web客户端还可以下载字符串?

我想使用该功能在MonoTouch的,但语言是C#。

Answer 1:

如果你只是希望接受所有证书,你需要设置证书检查,你让你的请求之前:

ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };

这将接受所有证书。

虽然 - 如果你需要实际检查证书做这样的事情:

ServicePointManager.ServerCertificateValidationCallback =
    (sender, certificate, chain, sslPolicyErrors) => 
    {
        //to check certificate
    };


Answer 2:

一个可能的原因可能是事实,有些网站提供不同的结果,不同的浏览器。

您可以尝试提供浏览器的信息假装电话是从一个浏览器。

var client = new WebClient();
client.Headers["User-Agent"] = "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.15) Gecko/20110303 Firefox/3.6.15";
string download = client.DownloadString("https://security.ultimatxxxx.com:443/Serverstatus.ashx");

要么

你还没有绑定completedEvent中的Aysnc调用。



文章来源: C# WebClient Download String https