2024年4月19日 星期五

[研究]ASP.NET,比較表,常用 Restful API Client 套件Flurl.Http, Refit, RestEase, RestSharp, HttpClient , HttpWebRequest 和 HttpWebResponse, HttpClientFactory,WebClient

[研究]ASP.NET,比較表,常用 Restful API Client 套件Flurl.Http, Refit, RestEase, RestSharp, HttpClient , HttpWebRequest 和 HttpWebResponse, HttpClientFactory,WebClient 

2024-04-19

環境:Visual Studio 2022 + ASP.NET + WebForm + Web Application + C# + SQL Server 2019 + SQL Server Management Studio (SSMS) 19

********************************************************************************

ASP.NET,WebForm,請比較下面 NuGet 提供的 Restful API Client 套件功能差異?優點?缺點?問世時間?是否 .NET Framework 內建提供?支援 .NET Framework 版本?推薦順序?用比較表

  • Flurl.Http
  • Refit
  • RestEase
  • RestSharp
  • HttpClient 
  • HttpWebRequest 和 HttpWebResponse 
  • HttpClientFactory 
  • WebClient 

ChatGPT
套件功能優點缺點問世時間.NET Framework 內建提供支援 .NET Framework 版本推薦順序
Flurl.Http提供流暢的API呼叫,易於閱讀和維護簡潔的API設計、輕量級且易於使用、具有優秀的擴展性對於大型專案,可能缺乏一些進階功能2014年3月發佈.NET Framework 4.5及以上4
Refit使用C#界面定義API,易於使用使用熟悉的C#界面定義API、自動序列化和反序列化、具有輕量級和簡潔的語法部分進階功能可能不支持,需手動實現2015年2月發佈.NET Framework 4.5及以上3
RestEase使用C#界面定義API,支援多種語法支援C#界面定義API、提供多種語法支援、具有自動序列化和反序列化文件和社區支援較少、部分進階功能可能不支持,需手動實現2016年6月發佈.NET Framework 4.5及以上5
RestSharp經典的.NET Restful API客戶端廣泛使用,穩定可靠、支援多種序列化方式、具有較為完善的功能由於歷史悠久,可能缺乏一些現代化的特性、部分進階功能需要額外擴展2009年2月發佈.NET Framework 4.0及以上1
HttpClient.NET內建的HTTP客戶端.NET內建,無需額外安裝、支援非同步操作、支援多種認證方式API設計較為冗長,不夠簡潔、需要手動處理許多細節,使用起來相對複雜2012年8月發佈.NET Framework 4.5及以上2
HttpWebRequest 和 HttpWebResponse.NET內建的HTTP請求和回應.NET內建,無需額外安裝、適用於特定情境下的低階控制使用起來相對複雜、需要手動處理許多細節-.NET Framework 1.1及以上6
HttpClientFactory.NET Core/.NET 5+的HTTP客戶端工廠提供HTTP客戶端實例的管理和重用、具有配置和擴展性需要理解並配置工廠以使用、對於小型項目,可能帶來額外的複雜性2018年9月發佈.NET Core/.NET 5+7
WebClient.NET內建的HTTP客戶端.NET內建,無需額外安裝、支援同步和非同步操作、較HttpClient簡潔,對於一些基本的HTTP操作足夠使用功能相對較少,不適用於較複雜的場景-.NET Framework 2.0及以上8

推薦順序根據功能、易用性、社區支持以及最新版本狀況給出,但最終選擇應根據具體項目需求而定。

註:推薦順序,敝人問了幾次,回答不盡相同。敝人沒查證資料正確與否。

********************************************************************************
問世時間順序?愈早排愈上方

ChatGPT

以下是這些 Restful API Client 套件的問世時間順序:
  1. HttpWebRequest 和 HttpWebResponse (.NET Framework 1.1內建:2003年4月)
  2. WebClient (.NET Framework 2.0內建:2005年11月)
  3. RestSharp (2009年2月)
  4. HttpClient (.NET Framework 4.5內建,2012年8月)
  5. Flurl.Http (2014年3月)
  6. Refit (2015年2月)
  7. RestEase (2016年6月)
  8. HttpClientFactory (.NET Core 2.1內建,2018年5月)
這些套件依據它們的問世時間由早至晚排列。

(完)

相關

[研究]ASP.NET,比較表,常用 Restful API Client 套件Flurl.Http, Refit, RestEase, RestSharp, HttpClient , HttpWebRequest 和 HttpWebResponse, HttpClientFactory,WebClient 
https://shaurong.blogspot.com/2024/04/aspnet-restful-api-client-flurlhttp.html

[研究][ASP.NET]用 RestSharp v107 做 RESTful API 呼叫(三)反序列化
https://shaurong.blogspot.com/2023/03/aspnet-restsharp-v107-restful-api_85.html

[研究][ASP.NET]用 RestSharp v107 做 RESTful API 呼叫(二)模組化
https://shaurong.blogspot.com/2023/03/aspnet-restsharp-v107-restful-api_27.html

[研究][ASP.NET]用 RestSharp v107 做 RESTful API 呼叫(一)成功
https://shaurong.blogspot.com/2023/03/aspnet-restsharp-v107-restful-api.html

[研究][ASP.NET]用 HttpClientFactory 做 RESTful API 呼叫(三)反序列化
https://shaurong.blogspot.com/2023/03/aspnet-httpclientfactory-restful-api_2.html

[研究][ASP.NET]用 HttpClientFactory 做 RESTful API 呼叫(二)模組化
https://shaurong.blogspot.com/2023/03/aspnet-httpclientfactory-restful-api_27.html

[研究][ASP.NET]用 HttpClientFactory 做 RESTful API 呼叫(一)成功
https://shaurong.blogspot.com/2023/03/aspnet-httpclientfactory-restful-api.html

[研究]ASP.NET RESTful API: 比較 HTTPClient , RestSharp , WebClient, HttpClientFactory, Flurl, Refit, RestEase
https://shaurong.blogspot.com/2023/03/aspnet-restful-api-httpclient-restsharp.html

[研究][ASP.NET]RestSharp 106 升級 v107疑難排解:未包含 HasValue 的定義
https://shaurong.blogspot.com/2023/03/aspnetrestsharp-106-v107-hasvalue.html

[研究][ASP.NET]用 HttpClient 做 RESTful API 呼叫
https://shaurong.blogspot.com/2023/03/aspnet-httpclient-restful-api.html

[研究][ASP.NET]ChatGPT,請提供完整 RestSharp v107 範例程式https://shaurong.blogspot.com/2023/03/aspnetchatgpt-restsharp-v107.html