HTTP-вызов Webapi приводит к исключению SSL - PullRequest
0 голосов
/ 21 февраля 2019

Я использую библиотеку под названием Refit для доступа к службе RESTful

public interface IApiClient
{
    [Get("/{Id}/shifttimes")]
    Task<ShiftTimesResponse> GetShiftTimes(int id);
}

И я инициализирую интерфейс в DI:

builder.Register(ctx =>
        {
            var baseUri = new Uri(config.ApiUri);
            var client = RestService.For<IApiClient>(baseUri.OriginalString);
            return client;

        }).As<IApiClient>().InstancePerTenant();

, Которыйзатем используется в myHandler:

public class ShiftTimesHandler
{
    private readonly IApiClient _apiClient;

    public ShiftTimesHandler(
            IApiClient apiClient)
    {
       _apiClient= apiClient;
    }

    public async Task Execute(Message message)
    {
       **Error on this line**
        var shiftTimesResponse = await _apiClient.GetShiftTimes(message.Id); 

        //Do something
    }
}

Исключением является:

Не удалось установить соединение SSL, см. внутреннее исключение.

внутреннее исключение:

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

1 Ответ

0 голосов
/ 22 февраля 2019

Ниже работало для меня.Однако это не следует делать в производственной среде :

            var httpClientHandler = new HttpClientHandler
            {
                ServerCertificateCustomValidationCallback = (message, cert, chain, errors) => true
            };

            var httpClient = new HttpClient(httpClientHandler)
            {
                BaseAddress = new Uri(config.ApiUri);
            };

            return RestService.For<IHoursApiClient>(httpClient);
...