2016-10-17 25 views
4

我知道下面的HTTP庫:5 .NET HTTP庫 - Microsoft.Net.Http適合哪裏?

  1. HttpWebRequest的
  2. WebClient的
  3. System.Net.Http.HttpClient
  4. Windows.Web.Http.HttpClient
  5. Microsoft.Net.Http

前3個地方相當簡單:WebClient vs HttpClient vs HttpWebRequest

第四也並不複雜:Demystifying HttpClient APIs in the Universal Windows Platform

但在哪裏呢Microsoft.Net.Http合適嗎?

+0

這是微軟HTTP客戶端庫的一部分,在這裏看看https://www.nuget.org/packages/Microsoft.Net.Http/ – Nkosi

+0

@Nkosi,並沒有真正告訴我在那裏什麼與其他API相關。 – Duanne

回答

1

System.Net.Http vs Microsoft.Net.Http:取決於版本。老System.Net.Http包(2.0的)是其贊成Microsoft.Http.Net

棄用所以esentially 3和5是相同的舊程序包。它是異步http客戶機,它使您能夠發出異步http請求,並且與WebClient相比,它可以在多線程環境中工作。

+0

如果Windows.Web.Http.HttpClient(#4)合併所有用於Windows應用程序語言(C#,VB,C++,JavaScript)的Http API並且#5替換#3,則還應該更新Windows.Web.Http.HttpClient 。 。 – Duanne

+1

Windows.Web.Http.HttpClient適用於Windows通用應用程序。 最新版本的System.Net.Http專門用於.NET Core。 舊版本的System.Net.Http(用於FULL .NET Framework)現在已經被描述,您應該使用Microsoft.Net.Http。 –

1

所以根據所有反饋和文章到目前爲止引用:

  1. HttpWebRequest的 - 原來的HTTP API。提供低級別的控制。
  2. WebClient - HttpWebRequest上的抽象層。使用更簡單,性能稍慢。
  3. System.Net.Http.HttpClient - HttpWebRequest上的抽象層,提供比前兩個選項更多的功能。版本4.0.0.0僅用於完整.NET,自4.1.0版本以來支持.NET Core
  4. Windows.Web.Http.HttpClient - 多語言(C#,VB, C++,JavaScript)。主要用於開發多語言Windows應用商店應用程序,以便只需引用一個API。
  5. Microsoft.Net.Http - 替換System.Net.Http.HttpClient 2.0.2或更舊版本的HTTP API。這用於支持較舊的.NET應用程序。
+0

HttpClient *不是*替代HttpWebRequest,它*使用* HttpWebRequest。它是WebClient的替代品。 WebClient很容易使用,只能用於下載。指定標題或發出POST請求很困難。創建HttpClient以使REST調用變得簡單 –

+0

@Panagiotis Kanavos感謝您的糾正,我已經相應更新。 – Duanne