我试图从https web请求中创建XML文档,但是当网站具有无效证书时,我无法使其工作。我希望我的应用程序不关心证书,我希望它能够在无惧的情况下生活在边缘!使用XmlTextReader https请求忽略无效SSL(版本3)证书
这里是最初的代码我有,这是我之前5次来得到什么,我从一个标准的HTTP希望(非SSL)要求:
XmlDocument xml = new XmlDocument();
XmlTextReader reader = new XmlTextReader("https://www.example.com");
xml.Load(reader);
随着网站具有无效的SSL证书我我现在得到以下错误:
The request was aborted: Could not create SSL/TLS secure channel.
现在我已经做了我的谷歌,荷兰国际集团和尝试了一些有前途的解决方案,但它似乎没有帮助。
一个我试过here on SO看起来不错,但似乎没有工作,我直接在我的代码之前添加了“接受答案”代码行,因为它不太清楚它应该去哪里。
如果它有什么区别,我的代码是在类库中,我正在通过控制台应用程序进行测试。我也使用.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);
}
}
刚大声思考:我对'+ ='感到困惑。将它改为'='可以为你做什么吗? – skrebbel 2012-07-13 11:59:00
@skrebbel:编译罚款但同样的运行时错误 – musefan 2012-07-13 12:00:04
@skrebbel:不要担心,排序;-) – musefan 2012-07-13 12:04:30