gpt4 book ai didi

c# - HttpClient.GetJsonAsync 未找到。 (blazor 服务器)

转载 作者:行者123 更新时间:2023-12-03 15:55:24 26 4
gpt4 key购买 nike

我已经通过添加最新的包引用来安装该包。
来自 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);
}

最佳答案

1.在blazor服务器应用中,当前HttpClient类不包含“GetJsonAsync”、“PostJsonAsync”和“PutJsonAsyc”方法。

2.你可以创建一个自定义的HttpClient类来添加这些缺失的方法来处理json数据

public CustomHttpClient : HttpClient 
{
public async Task<T> GetJsonAsync<T>(string requestUri)
{
HttpClient httpClient = new HttpClient();
var httpContent = await httpClient.GetAsync(requestUri);
string jsonContent = httpContent.Content.ReadAsStringAsync().Result;
T obj = JsonConvert.DeserializeObject<T>(jsonContent);
httpContent.Dispose();
httpClient.Dispose();
return obj;
}

public async Task<HttpResponseMessage> PostJsonAsync<T>(string requestUri, T content)
{
HttpClient httpClient = new HttpClient();
string myContent = JsonConvert.SerializeObject(content);
StringContent stringContent = new StringContent(myContent, Encoding.UTF8, "application/json");
var response = await httpClient.PostAsync(requestUri, stringContent);
httpClient.Dispose();
return response;
}

public async Task<HttpResponseMessage> PutJsonAsync<T>(string requestUri, T content)
{
HttpClient httpClient = new HttpClient();
string myContent = JsonConvert.SerializeObject(content);
StringContent stringContent = new StringContent(myContent, Encoding.UTF8, "application/json");
var response = await httpClient.PutAsync(requestUri, stringContent);
httpClient.Dispose();
return response;
}
}

3.现在调用你的 Razor 页面:
@inject CustomHttpClient Http

@code{

protected override async Task OnInitializedAsync() {
await Http.GetJsonAsync < Emp[] > ("Your Url");
}

public class Emp
{
public int? ID { get; set; }
public string EmpName { get; set; }
}
}

关于c# - HttpClient.GetJsonAsync 未找到。 (blazor 服务器),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59846892/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com