HttpClient よりも HttpClientFactory を利用したほうが良いかも
.NET において REST API を呼び出す際、多くの方が HttpClient を使用すると思いますが、その時の注意点が帝国兵さんの Qiita で書かれています。 qiita.com この記事に書いてある通りで、 HTTP Client インスタンスをいちいち破棄して作成を繰り返していると、CLOSE_WAIT または TIME_WAIT 状態の SNAT ポートが増えてしまい、ポートが枯渇して通信ができなくなります。 具体的には hping3 で繰り返しリクエストを行っているのと同じ状態であると思います。 hping3 の使い方の具体例は宇田さんのサイトをご覧ください。 www.syuheiuda.com さて、 private static readonly HttpClient HttpClient; を使うのも良いと思いますが、 .NET Core 2.1 以降 であれば HttpClientFactory を使うほうが良いと思います。 HttpClientFactory とは docs.microsoft.com HttpClientFactory は、自己主張性の強いファクトリで、アプリケーションに使用する HttpClient インスタンスを作成するため、.NET Core 2.1 以降で使用できます。 いやいや、この説明だけじゃなんのことかさっぱりわからんですよね。 HttpClientFactory は名前の通り、先の HttpClient のファクトリーでより使いやすくなってます。 HttpClientFactory のメリット 仕組みは色々とあるのですが、利用者として特に2点が有用だと思いました。 ASP.NET Core アプリケーションなどに DI できる ポリシーを利用してリトライ回数や待ち時間を調整できる 1. ASP.NET Core アプリケーションなどに DI できる ASP.NET Core アプリケーションに DI して利用する方法はこちらを参照。 ...