Я новичок в ядре asp. Это пример, который я нашел на net. как мне это сделать правильно?
Если вы хотите запустить фоновую службу для отправки запроса в ядро asp. net, я предлагаю вам напрямую ввести httpClientFactory вместо использования ServiceProvider.GetRequiredService
чтобы ввести его снова.
Подробнее, вы можете обратиться к кодам ниже:
Убедитесь, что вы добавили службу AddHttpClient в startup.cs
services.AddHttpClient ();
2. Добавьте следующие коды в worker.cs:
public class Worker : IHostedService
{
private IHttpClientFactory httpClientFactory;
public Worker(IHttpClientFactory _httpClientFactory) {
httpClientFactory = _httpClientFactory;
}
public Task StartAsync(CancellationToken cancellationToken)
{
DoWork("test");
return Task.CompletedTask;
}
public Task StopAsync(CancellationToken cancellationToken)
{
return Task.CompletedTask;
}
private async void DoWork(object state)
{
var request = new HttpRequestMessage(HttpMethod.Get, "http://localhost:9012/");
//request.Headers.Add("Accept", "application/vnd.github.v3+json");
//request.Headers.Add("User-Agent", "HttpClientFactory-Sample");
var client = httpClientFactory.CreateClient();
var response = await client.SendAsync(request);
int i = 0;
}
}
Результат:
![enter image description here](https://i.stack.imgur.com/uu8iV.png)
More details about how to use asp.net core background service, you could refer to this артикул .