[C#] [備忘録] HttpClientではusingを使ってはだめだよ
以下のサイトを読んだので備忘録として
つまりは
using(var httpClient = new HttpClient()) { // ここにコード }
とすると、usingブロックを抜けてもソケットが即座にクローズされないだけでなく、毎回新しいソケットをオープンしてしまうらしい。 詳しくは上記のサイトを見てもらうとして、備忘録として具体的な回避方法は以下の通り。
using System; using System.Net.Http; using System.Threading.Tasks; namespace myApp { class Program { private static HttpClient client = new HttpClient(); static void Main() { var task = CallAsync(); var result = task.Result; Console.WriteLine(result); } public static async Task<string> CallAsync() { var response = await client.GetAsync("https://www.google.com"); var text = await response.Content.ReadAsStringAsync(); return text; } } }
大事なこと:
1.HttpClientはstaticで
2.disposeやusingは使わないこと
実戦で役立つ C#プログラミングのイディオム/定石&パターン
- 作者: 出井秀行
- 出版社/メーカー: 技術評論社
- 発売日: 2017/02/18
- メディア: 大型本
- この商品を含むブログ (1件) を見る