7.2Blazor WebAssembly
Blazor WebAssembly 应用运行在浏览器的沙箱环境中,无法使用操作系统底层的 TCP 套接字。整个网络栈被替换为基于浏览器 fetch API 的实现,因此依赖于 System.Net.Sockets 的 SocketsHttpHandler 和会调用平台原生网络 API 的 HttpClientHand
HTTP 远程请求支持在 Blazor WebAssembly 客户端应用中使用。以下是配置和使用的详细步骤:
1. 注册 HttpRemote 服务
在 Startup.cs 或 Program.cs 文件中,注册 HttpRemote 服务并配置 FallbackBaseAddress:
builder.Services.AddHttpRemote() .ConfigureOptions((options, serviceProvider) => { var navigation = serviceProvider.GetRequiredService<NavigationManager>(); options.FallbackBaseAddress = new Uri(navigation.BaseUri); });2. 在 _Imports.razor 中引入命名空间
在 _Imports.razor 文件中,添加 HttpRemote 服务的命名空间:
@using HttpAgent; // 如果使用 Furion 框架,则使用 @using Furion.HttpRemote;3. 在 *.razor 文件中使用
在 *.razor 文件中注入 IHttpRemoteService 并发送 HTTP 远程请求:
@page "/weather"@inject IHttpRemoteService Http// 其他代码...@code { private WeatherForecast[] forecasts; protected override async Task OnInitializedAsync() { forecasts = await Http.GetAsAsync<WeatherForecast[]>("sample-data/weather.json"); }}通过以上步骤,您可以在 Blazor WebAssembly 应用中轻松使用 HTTP 远程请求功能,动态获取数据并渲染到页面中。