Skip to content
This repository was archived by the owner on Feb 7, 2026. It is now read-only.
This repository was archived by the owner on Feb 7, 2026. It is now read-only.

AddHttpMessageHandler not honored while using with .net framework application #1

@noufionline

Description

@noufionline

Hi Kevin,

I am trying to use IHttpClientFactory in my WPF Prism Application. Since I cannot use the Microsoft Dependency Injection container in Prism I have used Unity Provider to convert my registration to Unity like below.

  var unityContainer = containerRegistry.GetContainer();

            ServiceCollection serviceCollection = new ServiceCollection();

       
            serviceCollection.AddHttpClient();

            serviceCollection.AddHttpClient<IRepositoryBase,RepositoryBase>()
                .AddHttpMessageHandler<RefreshTokenHandler>()
                .ConfigurePrimaryHttpMessageHandler(handler =>
                new HttpClientHandler()
                {
                    AutomaticDecompression = System.Net.DecompressionMethods.GZip
                });

           
           
            serviceCollection.BuildServiceProvider(unityContainer);
   public class RefreshTokenHandler:DelegatingHandler
    {
        private readonly IApiTokenProvider _tokenProvider;

        public RefreshTokenHandler(IApiTokenProvider tokenProvider)
        {
            _tokenProvider = tokenProvider;
        }

        public RefreshTokenHandler(HttpMessageHandler innerHandler, IApiTokenProvider tokenProvider) : base(
            innerHandler)
        {
            _tokenProvider = tokenProvider;
        }
        protected override async Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
        {
            var token = await _tokenProvider.GetTokenAsync();
            request.Headers.Authorization=new AuthenticationHeaderValue("Bearer",token);
            return await base.SendAsync(request, cancellationToken);
        }

        
    }

Any thoughts?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions