タイトルが不正確な感あるが、
HttpClientには使うにあたっての注意事項があって、これを使いやすくするHttpClientFactoryがある。
ただこれは、Microsoft.Extensions.DependencyInjectionと強く紐づいており、それ以外の場所ではどうやって使うのか? というお話。
使い方
以下二つをNuget
する
- Microsoft.Extensions.DependencyInjection
- Microsoft.Extensions.Http
コード例は下記の通り。
using System;
using System.Threading.Tasks;
using System.Net.Http;
using Microsoft.Extensions.DependencyInjection;
namespace HttpClientFactoryDemo
{
class Program
{
static async Task Main(string[] args)
{
// Microsoft DependancyInjection
var provider = new ServiceCollection().AddHttpClient().BuildServiceProvider();
// Microsoft Http クライアントファクトリーを得る
var factory = provider.GetRequiredService<IHttpClientFactory>();
// Http クライアントを得る
var client = factory.CreateClient();
// Http リクエストを用意
var request = new HttpRequestMessage(HttpMethod.Get, "https://dekirukigasuru.com/");
// Http アクセス
var response = await client.SendAsync(request);
if (response.IsSuccessStatusCode)
{
// 成功したら内容(HTML)を表示する
var responseString = await response.Content.ReadAsStringAsync();
Console.WriteLine(responseString);
}
else
{
Console.WriteLine("readError");
}
}
}
}
Microsoft.Extensions.DependencyInjectionの使い方そのままになりました。
- 続き - Pollyと組み合わせるメモ