HttpClient.GetJsonAsync未找到

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

我已通过添加最新的软件包参考来安装软件包。来自https://www.nuget.org/packages/Microsoft.AspNetCore.Blazor.HttpClient/但是我仍然找不到所需的功能,例如.. Client.GetJsonAsync

如果我缺少什么,可以请帮我吗?谢谢

我正在这里尝试但不能。

public async Task<User> GetUser(string Id)
        {
            HttpClient client = new HttpClient();
            var user = await client.GetJsonAsync($"{BaseUrl}Get-User/{Id}");
            return JsonConvert.DeserializeObject<User>(user);
        }
c# asp.net-core asp.net-web-api blazor blazor-server-side
2个回答
1
投票

方法签名如下:

public static async Task<T> GetJsonAsync<T>(this HttpClient httpClient, string requestUri);

所以它是一个generic方法,您将必须在调用中包括type参数。

在您的情况下,应如下所示:

HttpClient client = new HttpClient();
var user = await client.GetJsonAsync<User>($"{BaseUrl}Get-User/{Id}");

这已经将JSON响应反序列化为User类型。

注意,您需要对Microsoft.AspNetCore.Components名称空间使用,以便此扩展方法出现。


0
投票

我希望您使用的是客户端blazor

这些是HTTP客户端的扩展方法,因此您必须通过GetJsonAsync传递类型,该方法将返回一个对象。如果您的API返回空白响应,则此方法将引发错误。在这种情况下,可以使用httpClient.GetAsync方法

enter image description here

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