【问题标题】:Blazor WebAssembly Hosted API URLBlazor WebAssembly 托管 API URL
【发布时间】:2021-06-25 03:02:42
【问题描述】:
试图了解默认的 Blazor WebAssembly ASP.NET 托管模板...我的问题是服务器应用托管的 API 的确切位置是什么?
客户端应用只需调用 API“天气预报”:
await Http.GetFromJsonAsync<WeatherForecast[]>("WeatherForecast");
但是如果你手动导航到 http://localhost:xxxxx/weatherforecast 就没有这样的 URL
如果我想查看原始 JSON 结果,实际的 API 端点是什么?
【问题讨论】:
标签:
blazor
blazor-webassembly
【解决方案1】:
在你的 blazor 组件中,注入了一个 HttpClient。
@* Injection of HttpClient *@
@inject HttpClient Http
@* your page/component code *@
@foreach (var f in forecasts)
{
<div>
@f.SomeProperty
</div>
}
@code {
private WeatherForecast[] forecasts;
protected override Task OnInitilizeAsync()
{
// Use HttpClient injected at top
forecasts = Http.GetFromJsonAsync<WeatherForecast[]>("weatherforecast");
}
}
在您的 Program 类中,您有一个 Main(string[]) 方法,它注册所有服务:
// create a Builder for Blazor WebAssembly
var builder = WebAssemblyHostBuilder.CreateDefault(args);
// Register a HttpClient in services
// builder.HostEnvironment.BaseAddress = domain of your app (localhost, www.example.com, ...)
builder.Services.AddScoped(sp => new HttpClient { BaseAddress = new Uri(builder.HostEnvironment.BaseAddress) });