在Blazor WebAssembly中调用外部API的解决方法如下:
创建一个Blazor WebAssembly项目。
在项目中创建一个服务类,用于调用外部API。例如,创建一个名为ApiService
的类。
using System.Net.Http;
using System.Threading.Tasks;
public class ApiService
{
private readonly HttpClient httpClient;
public ApiService(HttpClient httpClient)
{
this.httpClient = httpClient;
}
public async Task GetApiData()
{
var response = await httpClient.GetAsync("https://api.example.com/data");
response.EnsureSuccessStatusCode();
return await response.Content.ReadAsStringAsync();
}
}
Program.cs
文件中注册ApiService
服务。using Microsoft.AspNetCore.Components.WebAssembly.Hosting;
using Microsoft.Extensions.DependencyInjection;
using System;
using System.Net.Http;
using System.Threading.Tasks;
public class Program
{
public static async Task Main(string[] args)
{
var builder = WebAssemblyHostBuilder.CreateDefault(args);
builder.RootComponents.Add("app");
builder.Services.AddScoped(sp => new HttpClient { BaseAddress = new Uri(builder.HostEnvironment.BaseAddress) });
builder.Services.AddScoped();
await builder.Build().RunAsync();
}
}
ApiService
服务。@page "/fetchdata"
@inject ApiService ApiService
Data from API:
@if (apiData != null)
{
@apiData
}
else
{
Loading...
}
@code {
private string apiData;
protected override async Task OnInitializedAsync()
{
apiData = await ApiService.GetApiData();
}
}
这样,当fetchdata
页面加载时,ApiService
将调用外部API并返回数据给Blazor组件,然后将数据显示在页面上。
请注意,这只是一个简单的示例,实际项目中可能需要进行错误处理和其他逻辑。