Blazor:从 wwwroot json 文件使用 GetFromJsonAsync 时提供了无效的请求 URI

问题描述 投票:0回答:1

从示例 WebAssembly 模板中获取代码并将其应用到服务器应用程序时,我尝试读取位于 wwwroot 目录中的 json 文件:

{
    forecasts = await Http.GetFromJsonAsync<WeatherForecast[]>("sample-data/weather.json");
}

这样做时,我收到“提供了无效的请求 URI”,因此将其更改为使用 http://localhost 地址是可行的,但我试图理解为什么我不能简单地提供如上所示的相对路径.

asp.net blazor httpclient uri
1个回答
0
投票

我在我这边重现了你的问题。

异常显示我们有一个无效的网址,并且相关部分必须正确,所以我尝试检查基本网址。正如您所看到的,在 Web Assembly 项目中,它是

localhost
url。

但是在 blazor 服务器应用程序中,我们无法获取基本 url。是

null

所以我在 Program.cs 中添加

builder.Services.AddScoped(sp => new HttpClient { BaseAddress = new Uri("https://localhost:7058/") });
,就像 wsam 项目所做的那样。

测试结果是这样的。这次我创建了一个新的服务器项目。

© www.soinside.com 2019 - 2024. All rights reserved.