我正在尝试从 https Web 请求创建 XML 文档,但是当站点的证书无效时,我无法使其正常工作。我希望我的应用程序不关心证书,我希望它无所畏惧地生活在边缘!
这是我拥有的初始代码,之前我曾多次使用它从标准 http(非 SSL)请求中获取我想要的内容:
XmlDocument xml = new XmlDocument();
XmlTextReader reader = new XmlTextReader("https://www.example.com");
xml.Load(reader);
由于网站的 SSL 证书无效,我现在收到以下错误:
请求被中止:无法创建 SSL/TLS 安全通道。
现在我已经完成了我的谷歌搜索并尝试了一些有希望的解决方案,但似乎没有任何帮助。
我在这里尝试过的一个看起来不错,但似乎没有用,我直接在上面的代码之前添加了“已接受的答案”代码行,因为它不太清楚应该去哪里。
万一有什么不同,我的代码在类库中,我正在通过控制台应用程序进行测试。我也在使用.Net 4。
这是我最近的尝试(不起作用):
XmlDocument xml = new XmlDocument();
ServicePointManager.ServerCertificateValidationCallback += new System.Net.Security.RemoteCertificateValidationCallback((s, ce, ch, ssl) => true);
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(urlCommand);
request.Credentials = CredentialCache.DefaultCredentials;
using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
{
using (Stream receiveStream = response.GetResponseStream())
{
XmlTextReader reader = new XmlTextReader(receiveStream);
xml.Load(reader);
}
}