RestSharp и игнорирование ошибок в SSL-сертификате

Я пытаюсь запустить запрос REST с RestSharp на сервере, который явно не имеет действительного сертификата ssl, так как я получаю сообщение об ошибке

Базовое соединение было закрыто: не удалось установить доверительные отношения для безопасного канала SSL/TLS.

Я нашел этот вопрос, но предоставленное решение, каким бы простым оно не выглядело, не работает, я все равно получаю сообщение об ошибке. Вот мой код, есть идеи, что может быть не так?

private void Test_REST()
{
  var client = new RestClient("https://online.gema.de");

  // both versions not working
  ServicePointManager.ServerCertificateValidationCallback += (sender, certificate, chain, sslPolicyErrors) => true;
  client.RemoteCertificateValidationCallback += (sender, certificate, chain, sslPolicyErrors) => true;

  // execute the request
  IRestResponse response = client.Execute(GEMA_Authorize());
  var content = response.Content; // raw content as string
}

private RestRequest GEMA_Authorize()
{
  RestRequest request = new RestRequest("api/v1/authorize", Method.GET);
  request.AddParameter("response_type", "token"); 
  request.AddParameter("client_id", "test_client");
  request.AddHeader("Accept", "application/json");
  request.AddHeader("Content-Type", "application/x-www-form-urlencoded");

  return request;
}

Когда я пишу обратный вызов, как это:

  .ServerCertificateValidationCallback += (sender, certificate, chain, sslPolicyErrors) =>
  {
    return true;
  };

и установить точку останова на return true; выполнение не останавливается на этом, поэтому кажется, что обратный вызов никогда не перезванивается. Есть идеи, в чем может быть проблема? Я довольно новичок в REST, поэтому я могу пропустить что-то важное.

Заранее спасибо,
Фрэнк

0 ответов

Использование

client.RemoteCertificateValidationCallback = (sender, certificate, chain, sslPolicyErrors) => true;

работал у меня.

Другие вопросы по тегам