我正在尝试配置我的http客户端以发送jwt令牌
使用此代码
public class HttpClientWithToken
{
public HttpClientWithToken(HttpClient httpClient)
{
HttpClient = httpClient;
}
public HttpClient HttpClient { get; }
}
public static async Task Main(string[] args)
{
var builder = WebAssemblyHostBuilder.CreateDefault(args);
builder.RootComponents.Add<App>("#app");
builder.Services.AddHttpClient<HttpClientWithToken>(
client => client.BaseAddress = new Uri(builder.HostEnvironment.BaseAddress))
.AddHttpMessageHandler<BaseAddressAuthorizationMessageHandler>();
ConfigureServices(builder.Services);
var host = builder.Build();
await host.RunAsync();
}
我得到错误:“没有注册类型为“microsoft.aspnetcore.components.webassembly.authentication.baseaddressauthorizationmessagehandler”的服务”
使用此代码
public static async Task Main(string[] args)
{
var builder = WebAssemblyHostBuilder.CreateDefault(args);
builder.RootComponents.Add<App>("#app");
builder.Services.AddSingleton<BaseAddressAuthorizationMessageHandler>();
builder.Services.AddHttpClient<HttpClientWithToken>(
client => client.BaseAddress = new Uri(builder.HostEnvironment.BaseAddress))
.AddHttpMessageHandler<BaseAddressAuthorizationMessageHandler>();
ConfigureServices(builder.Services);
var host = builder.Build();
await host.RunAsync();
}
我收到错误:“在尝试激活“Microsoft.AspNetCore.Components.WebAssembly.Authentication.IAccessTokenProvider”时,无法解析类型为“Microsoft.Asp NetCore.Components.WebAssembly.Authentication.BaseAddressAuthorizationMessageHandler”的服务。”
我错过了什么?
基于我下面的示例,第一个代码应该在头中发送承载。
我可以调用我的api,并在设置HttpClient时获得承载令牌。DefaultRequestHeaders。授权,但我无法使用配置获取令牌。