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