.net coreでHttpClient
HttpClientFactoryについて
めっちゃ内容薄い、他のブログ見た方が良いかも
HttpClientがとりあえずひどい作りなので、HttpClientFactoryってものがあります。HttpClientのひどい設計をカバーしたものがHttpClientFactoryです。名前もひどいもんですね。
HttpClientの何がダメなのか?
「ソケット枯渇して色々バグあるよー」ってやつです。詳しくは以下を見てください。
www.infoq.com
docs.microsoft.com
.Net Frameworkではシングルトンにして対応する必要がありました。知らなかったけど
HttpClientFactoryを使うとどうなのか?
「ソケット枯渇しないしバグもないよ!」ってやつです。詳しくは以下を見てください。
.NETのHttpClientの修正
使い方
nuget
dotnet add package Microsoft.Extensions.Http --version 2.1.1
最新が14日前でそろそろ2.2.0がリリースされると思います。
DI
public void ConfigureServices(IServiceCollection services) { // これ services.AddHttpClient(); services.AddMvc(); } これ
Constructor Injection
public class HomeController : Controller { private readonly IHttpClientFactory _httpClientFactory; public HomeController(IHttpClientFactory httpClientFactory) { _httpClientFactory = httpClientFactory; } }
使いたいところで注入。
GETする
var client = _httpClientFactory.CreateClient(); var result = await client.GetStringAsync({URL});
clientはHttpClientなのでいつも通りに使えばおっけいです。
そもそもHttpClientを普通に使えないのが謎ですが、まぁこんなライブラリもありますって内容でした。