System.Net.Http vs Microsoft.Net.Http

我正在使用ASP.NET 5和MVC 6.我想使用HttpClient,但我注意到有两个NuGet包提供。 我使用哪一个?

  • System.Net.Http
  • Microsoft.Net.Http

取决于版本。 旧的System.Net.Http软件包( 2.0版本)是旧版软件包,根据以下描述,不赞成使用Microsoft.Http.Net

旧版软件包,System.Net.Http现在包含在“Microsoft.Net.Http”软件包中。

它们的存在是为了在以前的.NET版本和可移植类库中提供HttpClient 。 在这种情况下,你应该使用Microsoft.Net.Http

由于您使用的是.NET Core,因此您应该使用最新的System.Net.Http软件包(例如4.1.0)。

如果您的project.json同时针对完整的.NET和.NET Core,则必须将System.Net.Http程序集添加到frameworkAssemblies元素。 例如:

 "frameworks": { "net451": { "frameworkAssemblies": { "System.Net.Http": "4.0.0.0" // HttpClient for full .NET } }, "netstandard1.3": { "dependencies": { "System.Net.Http": "4.1.0", // HttpClient for .NET Core } } } 

Microsoft.Net.Http需要额外的Microsoft.Bcl依赖项。

为此,如果您只是针对.NET Framework或.NET Core,则System.Net.Http是很好的select。 否则, Microsoft.Net.Http会是更好的select,因为它可能是下一代。