Использование HttpClient и HttpWebRequest для HTTPS TLS1.2C#

Место общения программистов C#
Anonymous
Использование HttpClient и HttpWebRequest для HTTPS TLS1.2

Сообщение Anonymous »

В консольном приложении при попытке подключиться к конечной точке https, настроенной с помощью TLS 1.2.
В C#
При использовании HttpClient я получаю ответ об успехе от конечной точки

Код: Выделить всё

       HttpClient httpClient = new HttpClient();

//specify to use TLS 1.2 as default connection
System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls | SecurityProtocolType.Ssl3;

httpClient.BaseAddress = new Uri("HTTPSENDPOINT");
httpClient.DefaultRequestHeaders.Accept.Clear();
httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

var content = new StringContent("POSTDATA");
var task = httpClient.PostAsync("/Token", content);

task.Wait();

Console.WriteLine(task.Result.Content.ReadAsStringAsync().Result.ToString());
Но при использовании HttpWebRequest

Код: Выделить всё

       var request = (HttpWebRequest)WebRequest.Create("HTTPSENDPOINT/Token");
var postData = "POSTDATA";
var data = Encoding.ASCII.GetBytes(postData);

System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls | SecurityProtocolType.Ssl3;
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = data.Length;

using (var stream = request.GetRequestStream()) // Getting Error in GetRequestStream() method call
{
stream.Write(data, 0, data.Length);
}

var response = (HttpWebResponse)request.GetResponse();

var responseString = new StreamReader(response.GetResponseStream()).ReadToEnd();
Я получаю ошибку ниже

Запрос был прерван: не удалось создать безопасный канал SSL/TLS.

Пожалуйста, подскажите мне; что я делаю неправильно при использовании HttpWebRequest?

Подробнее здесь: https://stackoverflow.com/questions/573 ... tps-tls1-2

Вернуться в «C#»