web-dev-qa-db-ja.com

ASP.NET Coreではない.NET.coreアプリでHttpClientFactoryを使用できますか?

私は人気のあるブログ投稿を読みました https://www.stevejgordon.co.uk/introduction-to-httpclientfactory-aspnetcore HttpClientFactoryの使用について

それから引用する

新しいHttpClientFactory機能が追加されましたASP.NET Core 2.1これは、開発者がHttpClientインスタンスを使用して外部Webを作成する際に遭遇する可能性のある一般的な問題を解決するのに役立ちますアプリケーションからのリクエスト。

すべての例は、asp.netアプリケーションのスタートアップクラスでの接続を示しています。

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

私の質問は、ASP.NETコアの外部で使用できますか?もしそうなら例があります

多くの非Webアプリケーション(.netコアアプリ)がWeb呼び出しを行う必要があると思っていたので、asp.netコアAPIに入れるのではなく、なぜこれが.netコアAPIの一部ではなかったのか

8
Noel

返信いただきありがとうございます。

そのため、コンソールアプリで使用することが可能です。

どのように行きたいかに応じて、これを行う方法がいくつかあります。ここに2があります:

  1. ServiceCollectionに直接追加します。 services.AddHttpClient()

  2. 汎用ホストを使用 .ConfigureServices()メソッドにhttpclientFactoryを追加します

コンソールアプリで使用する ブログ投稿についてはこちらをご覧ください

2
Noel

ドキュメント によると、HttpClientFactoryは.Net Core 2.1の一部であるため、ASP.NETを使用する必要はありません。そして そこ の使用方法がいくつか説明されています。最も簡単な方法は、AddHttpClient拡張メソッドでMicrosoft.Extensions.DependencyInjectionを使用することです。

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

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

    var client = httpClientFactory.CreateClient();
}
14
Alex Riabov