Quantcast
Channel: Active questions tagged blazor - Stack Overflow
Viewing all articles
Browse latest Browse all 4839

Why wouldn't a DelegatingHandler execute on first request?

$
0
0

I'm working on a Blazor WebAssembly application and have created a DelegatingHandler called MyJWTHttpHandler to attach a JWT token to outgoing HTTP requests. However, I've encountered an issue where the handler does not execute on the first request until I refresh the page. After the refresh, the handler works as expected.

Here's the implementation of my handler:

public class MyJWTHttpHandler : DelegatingHandler{    private readonly ISessionStorageService _sessionStorage;    public MyJWTHttpHandler(ISessionStorageService sessionStorage) : base()    {        _sessionStorage = sessionStorage;    }    protected override async Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)    {        try        {            Console.Error.WriteLine("Sending Request");            var token = await _sessionStorage.ReadEncryptedItemAsync<object>("Token");            request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", token?.ToString());            return await base.SendAsync(request, cancellationToken);        }        catch (Exception ex)        {            Console.Error.WriteLine($"Error Sending Request: {ex.Message}");            return await base.SendAsync(request, cancellationToken);        }    }}

And here’s how I’m registering the handler in Program.cs:

builder.Services.AddTransient<MyJWTHttpHandler>();builder.Services.AddHttpClient("BaseUrl", client =>{    client.BaseAddress = new Uri(builder.HostEnvironment.BaseAddress);    client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));}).AddHttpMessageHandler<MyJWTHttpHandler>();

Viewing all articles
Browse latest Browse all 4839

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>