HttpClient 已經取代 WebClient 成為主流,而早期版本的(推出於 .NET 4.5) HttpClient 有一些問題,
各路人馬也陸續推出解方,微軟後續也推出了擴充套件來一併解決了相關問題,這邊記錄下...
回顧一下,剛推出的 HttpClient 有以下問題,詳情可以參考
耗盡 port 號(實際測試:HttpClient 殘留連線與耗盡 Socket Port 實測)
DNS 異動無法反應(實際測試:HttpClient 無法反應 DNS 異動的解決方式)
而為了解決以上問題,微軟後續推出了HttpClientFactory 一舉解決了連線共用及 DNS 異動更新問題。
Console App 環境
使用 .NET Framework 4.7.2
透過 Nuget 安裝 Microsoft.Extensions.Http(v8.0.0) ,而安裝該套件也會一併將相關套件一起安裝,
如Microsoft.Extensions.DependencyInjection 等等
程式碼參考如下
輸出結果參考
ASP.NET MVC 5 環境
使用 .NET Framework 4.7.2
這邊比較特別,希望透過單一實例的 HttpClient 來處理 Request,故會借用 Autofac 套件協助;
安裝 Autofac.Mvc5 (v6.1.0) ,安裝後也會一併將 Autofac 安裝
再透過 Nuget 安裝 Microsoft.Extensions.Http、Microsoft.Extensions.Hosting(v8.0.0)
程式碼參考如下
在 Global.asax.cs 檔案
調整 HomeController ,加入建構式與調整 Index Action
輸出畫面
【參考】
沒有留言:
張貼留言