【问题标题】:5 .NET HTTP libraries - where does Microsoft.Net.Http fit in?5 .NET HTTP 库 - Microsoft.Net.Http 适合哪里?
【发布时间】:2016-10-17 15:14:50
【问题描述】:

我知道以下 HTTP 库:

  1. HttpWebRequest
  2. 网络客户端
  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 适合在哪里呢?

【问题讨论】:

标签: c# asp.net .net wcf asp.net-web-api


【解决方案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)的 HTTP API 的整合。主要用于多语言Windows Store App开发,只需要引用一个API。
  5. Microsoft.Net.Http - 替换 System.Net.Http.HttpClient 2.0.2 或更早版本的 HTTP API。这用于支持较旧的 .NET 应用程序。

【讨论】:

  • HttpClient 不是 HttpWebRequest 的替代品,它使用 HttpWebRequest。它是 WebClient 的替代品。 WebClient 简单易用,仅用于下载。更难指定标头或发出 POST 请求。创建 HttpClient 是为了简化 REST 调用
  • @Panagiotis Kanavos 感谢您的更正,我已相应更新。
【解决方案2】:

System.Net.Http vs Microsoft.Net.Http:取决于版本。旧的 System.Net.Http 包(2.0 包)是旧包,已弃用,取而代之的是 Microsoft.Http.Net

所以本质上 3 和 5 是相同的。它是异步 http 客户端,可让您发出异步 http 请求,与 WebClient 相比,它确实可以在多线程环境中工作。

【讨论】:

  • 如果 Windows.Web.Http.HttpClient (#4) 整合了所有适用于 Windows 应用程序语言(C#、VB、C++、JavaScript)的 Http API 并且 #5 替换了 #3,那么 Windows.Web.Http .HttpClient 也应该更新。 .
  • Windows.Web.Http.HttpClient 适用于 Windows 通用应用程序。最新版本的 System.Net.Http 专用于 .NET Core。旧版本的 System.Net.Http(用于 FULL .NET Framework)现在已弃用,您应该使用 Microsoft.Net.Http。
猜你喜欢
  • 2017-01-17
  • 1970-01-01
  • 2014-12-25
  • 2010-09-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-23
  • 2011-12-21
相关资源
最近更新 更多