来自blazor组件的Http请求



我试图在我的blazor组件中向我的API发出http请求,但我遇到了一些问题,而且我是C#的新手。我使用的是Core 3.1。

Startup.cs:

services.AddHttpClient<MyHttpClient>(c => c.BaseAddress = Configuration["ServerUri"]);

服务文件夹/MyHttpClient.cs:

using System.Net.Http;
using System.Threading.Tasks;
namespace My.Namespace
{
public class MyHttpClient
{
private readonly HttpClient _client;
private string responseString = null;
public MyHttpClient(HttpClient client)
{
_client = client;
}
public async Task<string> HttpGets(string requestUri)
{
{
try
{
HttpResponseMessage response = new HttpResponseMessage();
response = await _client.GetAsync(requestUri);
responseString = await response.Content.ReadAsStringAsync();
}
catch (Exception ex)
{
Console.WriteLine(ex.Message.ToString());
}
}
return responseString;
}
}
}

组件.razor:

@using Services
@code {
public IEnumerable<MyType> Data;
protected override async Task OnInitializedAsync()
{
Data = await MyHttpClient.HttpGets("/api/getdata"); // I want to do something like this
}
}

我得到这个错误:非静态字段、方法或属性"member"需要对象引用

此外,这有意义吗?或者有更好的方法来处理我的http请求吗?我做错了什么?

您注册了新客户端,但仍需要注入它:

@using Services
@inject MyHttpClient MyHttpClient
@code {
...
}

。。。或者有更好的方法来处理我的http请求吗?

你的类只添加了一些错误处理,我看不出你是如何使它从string变成IEnumerable<MyType>的。

考虑在直接使用原始HttpClient的情况下使用MyTypeService类。

相关内容

  • 没有找到相关文章

最新更新