HTTPClient to API, ошибки сертификата и SSL - PullRequest
0 голосов
/ 19 сентября 2018

Я создал веб-приложение ASP.Net Core 2.1, которое собирает данные из двух источников.Одним из них является база данных SQL, которая предоставляет данные через Entity Framework для моего приложения.Этот работает отлично.Другой источник - REST API.У меня проблемы с подключением.

Я вызываю эту задачу, которая должна вернуть пользователя по его / ее адресу электронной почты:

        public async Task<PersonsModel> ReturnPersonByEmail(string email)
    {
        const string apiKey = "xxx";

        using (var client = new HttpClient())
        {
            client.BaseAddress = new Uri("https://xx.xxx.xxxx.xx:xxx/xxxx/xxx/xx/xx/person/?email={email}");
            client.DefaultRequestHeaders.Accept.Clear();
            client.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("x-api-key", "123456");
            var url = new Uri(client.BaseAddress.ToString());

            string json = "";

            try
            {
                ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
                var response = await client.GetAsync(url);

                using (var content = response.Content)
                {
                    json = await content.ReadAsStringAsync();
                }
            }
            catch (Exception e)
            {
                var exception = e;
            }

            return JsonConvert.DeserializeObject<PersonsModel>(json);
        }
    }
}

Когда я пытаюсь вызвать его черезПочтальон client.GetAsync (url) всегда возвращает исключение:

Message = "Удаленный сертификат недействителен в соответствии с процедурой проверки."Message = "Не удалось установить соединение SSL, см. Внутреннее исключение."

Я попытался добавить следующий фрагмент кода в launchSettings.json (согласно ответу на аналогичный вопрос, размещенный здесь: HttpClient client.GetAsync работает в полной среде .Net, но не в .Net core 2.1? ) "DOTNET_SYSTEM_NET_HTTP_USESOCKETSHTTPHANDLER": "0" , а затем я получаю еще одну ошибку:

Message = "Ошибка 12175 при вызове WINHTTP_CALLBACK_STATUS_REQUEST_ERROR," Произошла ошибка безопасности "."

Если у вас есть идеи о том, что может вызвать эту проблему, я был бы очень признателен за любую помощь.Спасибо!

...