Я пытаюсь выполнить POST-вызов по защищенному URL-адресу (https) с помощью HttpWebRequest, но получаю ошибку "запрос был прерван, не удалось создать безопасный канал ssl / tls" .
Я пробовал несколько способов, найденных в stackoverflow, перечисленных ниже, но ничего не работает. Нужна помощь в решении проблемы.
[OperationContract]
public string Search(string orderId)
{
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls;
// Skip validation of SSL/TLS certificate
ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };
string resultObject = string.Empty;
string baseUrl = "https://example.com";
string query = "";
System.Net.HttpWebRequest webrequest = (System.Net.HttpWebRequest)System.Net.WebRequest.Create(baseUrl);
webrequest.Method = "POST";
byte[] byteArray = Encoding.UTF8.GetBytes(query);
webrequest.ContentLength = byteArray.Length;
Stream dataStream = webrequest.GetRequestStream();
dataStream.Write(byteArray, 0, byteArray.Length);
dataStream.Close();
webrequest.ContentType = "application/json";
webrequest.Accept = "application/json";
System.Net.HttpWebResponse response;
}
Я даже попробовал ниже упомянутое -
public class MyPolicy : ICertificatePolicy
{
public bool CheckValidationResult(ServicePoint srvPoint,
X509Certificate certificate, WebRequest request,
int certificateProblem)
{
//Return True to force the certificate to be accepted.
return true;
}
}
[OperationContract]
public string Search(string orderId)
{
System.Net.ServicePointManager.CertificatePolicy = new MyPolicy();
string resultObject = string.Empty;
string baseUrl = "https://example.com";
string query = "";
System.Net.HttpWebRequest webrequest = (System.Net.HttpWebRequest)System.Net.WebRequest.Create(baseUrl);
webrequest.Method = "POST";
byte[] byteArray = Encoding.UTF8.GetBytes(query);
webrequest.ContentLength = byteArray.Length;
Stream dataStream = webrequest.GetRequestStream();
dataStream.Write(byteArray, 0, byteArray.Length);
dataStream.Close();
webrequest.ContentType = "application/json";
webrequest.Accept = "application/json";
System.Net.HttpWebResponse response;
}