Могу ли я использовать HttpClientFactory в приложении .NET.core, которое не является ASP.NET Core? - PullRequest
0 голосов
/ 03 октября 2018

Я читал популярное сообщение в блоге https://www.stevejgordon.co.uk/introduction-to-httpclientfactory-aspnetcore об использовании HttpClientFactory

Чтобы процитировать его

В ASP появилась новая функция HttpClientFactory.NET Core 2.1 , который помогает решить некоторые распространенные проблемы, с которыми могут столкнуться разработчики при использовании экземпляров HttpClient для выполнения внешних веб-запросов из своих приложений.

Все примеры показывают подключение его в классе запускаприложения asp.net например

public void ConfigureServices(IServiceCollection services)
{
            services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
            services.AddHttpClient();
} 

Мой вопрос: вы можете использовать вне ядра ASP.NET?И если да, то есть примеры

Я бы подумал, что многим не веб-приложениям (приложениям ядра .net) нужно совершать веб-вызовы, так почему это не было частью ядра ядра .net вместо помещения в asp.нетто ядро ​​API

Ответы [ 2 ]

0 голосов
/ 08 октября 2018

Спасибо за ответы.

Так что это можно использовать в консольном приложении.

Есть несколько способов сделать это, в зависимости от того, каким путем вы хотите идти.Вот 2:

  1. Непосредственно добавить в ServiceCollection, например, services.AddHttpClient ()

  2. Использовать общий хост Например, добавить httpclientFactoryв .ConfigureServices () метод

Смотрите здесь для сообщение в блоге, используя в консоли приложение

0 голосов
/ 03 октября 2018

Согласно документации HttpClientFactory является частью .Net Core 2.1, поэтому вам не нужен ASP.NET для его использования.И там описаны некоторые способы использования.Самый простой способ - использовать Microsoft.Extensions.DependencyInjection с методом расширения AddHttpClient.

static void Main(string[] args)
{
    var serviceProvider = new ServiceCollection().AddHttpClient().BuildServiceProvider();

    var httpClientFactory = serviceProvider.GetService<IHttpClientFactory>();

    var client = httpClientFactory.CreateClient();
}
...