简体   繁体   English

5 .NET HTTP库-Microsoft.Net.Http放在哪里?

[英]5 .NET HTTP libraries - where does Microsoft.Net.Http fit in?

I know of the following HTTP libraries: 我知道以下HTTP库:

  1. HttpWebRequest HttpWebRequest
  2. WebClient 网络客户端
  3. System.Net.Http.HttpClient System.Net.Http.HttpClient
  4. Windows.Web.Http.HttpClient Windows.Web.Http.HttpClient
  5. Microsoft.Net.Http Microsoft.Net.Http

The first 3 are quite simple to place: WebClient vs HttpClient vs HttpWebRequest 前三个很容易放置: WebClient vs HttpClient vs HttpWebRequest

The 4th is also not that complicated: Demystifying HttpClient APIs in the Universal Windows Platform 第四也没有那么复杂: 在通用Windows平台中使HttpClient API神秘化

But where does Microsoft.Net.Http fit in? 但是Microsoft.Net.Http放在哪里?

So according to all the feedback and articles referenced so far: 因此,根据到目前为止引用的所有反馈和文章:

  1. HttpWebRequest - original HTTP API. HttpWebRequest-原始HTTP API。 Provides low-level control. 提供底层控制。
  2. WebClient - layer of abstraction over HttpWebRequest. WebClient -HttpWebRequest上的抽象层。 Simpler to use, slightly slower performance. 使用更简单,性能稍慢。
  3. System.Net.Http.HttpClient - Layer of abstraction over HttpWebRequest that provides more features than the previous two options. System.Net.Http.HttpClient -HttpWebRequest上的抽象层,它提供比前两个选项更多的功能。 Up to version 4.0.0.0 it was just for full .NET, nut since version 4.1.0 supports .NET Core 直到4.0.0.0版本才用于完整的.NET,因为4.1.0版本支持.NET Core
  4. Windows.Web.Http.HttpClient - a consolidation of HTTP API's from multiple languages (C#, VB, C++, JavaScript). Windows.Web.Http.HttpClient-来自多种语言(C#,VB,C ++,JavaScript)的HTTP API的合并。 Mainly used for multi-language Windows Store App developed so that only one API needs to be referenced. 主要用于开发的多语言Windows Store App,因此仅需要引用一个API。
  5. Microsoft.Net.Http - HTTP API that replaces System.Net.Http.HttpClient 2.0.2 or older. Microsoft.Net.Http-替换System.Net.Http.HttpClient 2.0.2或更旧版本的HTTP API。 This is used to support older .NET applications. 这用于支持较旧的.NET应用程序。

System.Net.Http vs Microsoft.Net.Http : Depends on the version. System.Net.Http与Microsoft.Net.Http :取决于版本。 The old System.Net.Http packages (the 2.0 ones) are legacy packages which are deprecated in favor of Microsoft.Http.Net 旧的System.Net.Http包(2.0包)是旧版包,不建议使用Microsoft.Http.Net。

So esentially 3 and 5 are the same. 因此,本质上3和5是相同的。 It's async http client that enables you to make asynchronous http requests and in comparison to WebClient it does work in multi-threaded environment. 它是一个异步http客户端,使您可以发出异步http请求,并且与WebClient相比,它确实在多线程环境中工作。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM