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

Right way to do HttpClient that can be injected and used in Blazor server

$
0
0

Currently, I have this configuration for http client that I can use and inject when needed, wrapped with JWT authentication to hit some API address that has multiple end points:

builder.Services.AddHttpContextAccessor();builder.Services.AddHttpClient("ApiClient", client =>{    client.BaseAddress = new Uri(builder.Configuration["BaseUrl:ApiUrl"]);}).SetHandlerLifetime(TimeSpan.FromMinutes(5)).ConfigurePrimaryHttpMessageHandler(() => new SocketsHttpHandler{    PooledConnectionLifetime = TimeSpan.FromMinutes(5),    EnableMultipleHttp2Connections = true,    MaxConnectionsPerServer = 10,    MaxResponseHeadersLength = 64 * 1024,});builder.Services.AddScoped(sp =>{    var factory = sp.GetRequiredService<IHttpClientFactory>();    var client = factory.CreateClient("ApiClient");    var httpContext = sp.GetRequiredService<IHttpContextAccessor>().HttpContext;    var jwtToken = httpContext?.User?.FindFirst("JwtToken")?.Value;    if (!string.IsNullOrEmpty(jwtToken))    {        client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", jwtToken);    }    return client;});

I am just wondering if this is the right way to do it and whether there are other better approaches to achieve that in case this is considered costly or inefficient. I am doing blazor server and I rely on it in 100s of razor pages where I post/get/delete data.


Viewing all articles
Browse latest Browse all 4839

Trending Articles