我目前正在与第三方创建的系统进行集成。该系统要求我使用XML/HTTPS发送请求。第三方向我发送了证书并且我已经安装了它。
我使用以下代码:
using (WebClient client = new WebClient())
{
client.Headers.Add(HttpRequestHeader.ContentType, "text/xml");
System.Text.ASCIIEncoding encoding=new System.Text.ASCIIEncoding();
var response = client.UploadData(address, "POST", encoding.GetBytes(msg));
}
这段代码返回以下WebException
:
基础连接已关闭:无法建立 SSL/TLS 安全信道的信任关系。
更新 由于我正在使用一个测试服务器,证书不可信并且验证失败... 在测试/调试环境中绕过此问题,创建一个新的ServerCertificateValidationCallback
。
ServicePointManager.ServerCertificateValidationCallback += new System.Net.Security.RemoteCertificateValidationCallback(bypassAllCertificateStuff);
这是我的“假”回调函数
private static bool bypassAllCertificateStuff(object sender, X509Certificate cert, X509Chain chain, System.Net.Security.SslPolicyErrors error)
{
return true;
}