Мост ODataClient к HttpClientC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Гость
 Мост ODataClient к HttpClient

Сообщение Гость »


Я хочу прочитать службу OData через Microsoft.OData.Client. Сервис требует логин, пароль и ключ API. У меня проблемы с проверкой SSL.

Microsoft.OData.Client.DataServiceTransportException: System.Net.Http.HttpRequestException: не удалось установить SSL-соединение, см. внутреннее исключение.

System.Security.Authentication.AuthenticationException: удаленный сертификат недействителен в соответствии с процедурой проверки...

Когда я читаю данные с помощью HttpClient, где я указываю логин, пароль и ключ API, в заголовках http, все в порядке.

Есть ли способ объединить OData для использования типизированного HttpClient, который я настраиваю при запуске в Program.cs?

builder.Services.AddHttpClient((serviceProvider, httpClient) => { настройки var = serviceProvider.GetRequiredService().Value; httpClient.BaseAddress = новый Uri(settings.Url); var base64EncodedAuthenticationString = Convert.ToBase64String(System.Text.ASCIIEncoding.ASCII.GetBytes(settings.Login + ":" + settings.Password)); httpClient.DefaultRequestHeaders.Add("Авторизация", "Базовый " + base64EncodedAuthenticationString); httpClient.DefaultRequestHeaders.Add("Принять", "*/*"); httpClient.DefaultRequestHeaders.Add("x-api-key", settings.ApiKey); }) [Включить запрос] защищенная асинхронная задача Task ReadEpicorData(строковый метод, DataSourceLoadOptions loadOptions), где T: класс { пытаться { System.Net.ServicePointManager.ServerCertificateValidationCallback = (отправитель, сертификат, цепочка, sslPolicyErrors) => true; контекст вар = новый DataServiceContext(_httpClient.BaseAddress, ODataProtocolVersion.V4); var ss = context.CreateQuery("Части"); //EpicorUtils.SetCertificatePolicy(); результат вар = DataSourceLoader.Load(ss, loadOptions); вернуть результат; } поймать (Исключение ex) { _logger.LogError(ex, «Произошла ошибка при чтении данных, EPICOR DAO, {type}, {method}», typeof(T), метод); бросать; } } Чистый HttpClient работает нормально, но я хотел бы использовать ODataClient и его возможности. Я не хочу использовать Simple.OData.Client, потому что мне нужен запрашиваемый контекст. Я хочу предоставить результат, который я планирую с помощью элементов управления Devextreme.

Помогите пожалуйста, я читаю весь интернет ;)
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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