В настоящее время я интегрируюсь с системой, созданной сторонней стороной. Эта система требует от меня отправки запроса с использованием 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.
UPDATE. Поскольку это тестовый сервер, с которым я работаю, сертификат не доверен и проверка не выполняется... Чтобы обойти это в среде тестирования/отладки, создайте новый 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;
}