2023年12月14日 星期四

在 .NET Framework 使用 HttpClientFactory

HttpClient 已經取代 WebClient 成為主流,而早期版本的(推出於 .NET 4.5) HttpClient 有一些問題,

各路人馬也陸續推出解方,微軟後續也推出了擴充套件來一併解決了相關問題,這邊記錄下...



回顧一下,剛推出的 HttpClient 有以下問題,詳情可以參考



而為了解決以上問題,微軟後續推出了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



輸出畫面




【參考】


沒有留言:

張貼留言