需要在下载代码之前加入如下代码
// 解决WebClient不能通过https下载内容问题
System.Net.ServicePointManager.ServerCertificateValidationCallback +=
delegate(object sender, System.Security.Cryptography.X509Certificates.X509Certificate certificate,
System.Security.Cryptography.X509Certificates.X509Chain chain,
System.Net.Security.SslPolicyErrors sslPolicyErrors)
{
return true; // **** Always accept
};
上述代码主要是为了跳过https的ssl验证。
完整示例如下:
private string geihtmlutf8(string url)
{
try
{
if (url.Substring(0, 5) == "https")
{
// 解决WebClient不能通过https下载内容问题
System.Net.ServicePointManager.ServerCertificateValidationCallback +=
delegate(object sender, System.Security.Cryptography.X509Certificates.X509Certificate certificate,
System.Security.Cryptography.X509Certificates.X509Chain chain,
System.Net.Security.SslPolicyErrors sslPolicyErrors)
{
return true; // **** Always accept
};
}
var hl = new WebClient();
var hltext = hl.DownloadData(url); //取网页源码
return (Encoding.GetEncoding("UTF-8").GetString(hltext)); //编码转换
}
catch (Exception ex)
{
return ex.ToString();
}
} //取网页源码