Mih*_*myh 4 dotnet-httpclient .net-core blazor httpclientfactory blazor-server-side
我正在尝试HttpClient在使用的Blazor服务器中配置的基地址,IHttpClientFactory但出现运行时异常:
services.AddHttpClient("ApiClient", (provider, client) =>
{
var uriHelper = provider.GetRequiredService<NavigationManager>();
client.BaseAddress = new Uri(uriHelper.BaseUri);
});
Run Code Online (Sandbox Code Playgroud)
System.InvalidOperationException: 'Cannot resolve scoped service 'Microsoft.AspNetCore.Components.NavigationManager' from root provider.'
Run Code Online (Sandbox Code Playgroud)
有谁知道这里可能是什么问题?
在ConfigureServices您可以传递它或创建服务期间,基本 url 不可用:
services.AddHttpClient();
services.AddTransient<ApiService>();
Run Code Online (Sandbox Code Playgroud)
服务:
public class ApiService
{
public ApiService(HttpClient httpClient, NavigationManager navigationManager)
{
HttpClient = httpClient;
NavigationManager = navigationManager;
HttpClient.BaseAddress = new Uri(NavigationManager.BaseUri);
}
public HttpClient HttpClient { get; }
public NavigationManager NavigationManager { get; }
}
Run Code Online (Sandbox Code Playgroud)
一个组件:
Base Address : @ApiService.HttpClient.BaseAddress
@code {
[Inject]
public ApiService ApiService { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2787 次 |
| 最近记录: |