System.Net.Http 与 Microsoft.Net.Http 的当前状态
The current status of System.Net.Http vs. Microsoft.Net.Http
我对 HttpClient
的包装感到困惑。早些时候它作为 Microsoft.Http.Net
NuGet 包的一部分分发,而 System.Net.Http
被认为是遗留的。看起来现在情况正好相反:有一个适用于所有平台的全新 System.Net.Http
软件包,并且 Microsoft.Net.Http
已经有一段时间没有更新了,据 Microsoft 开发团队的人员称将被弃用。
接下来的问题:
- 我们可以用(最新的)
System.Net.Http
替换对 Microsoft.Net.Http
NuGet 包的依赖吗?
- 旧版 .NET 4.0 平台是否仍应使用
Microsoft.Net.Http
?
非 Windows 平台(iOS、Android)呢?新的 System.Net.Http
支持它们,但我记得 Microsoft.Net.Http
我必须额外安装 Microsoft.Bcl.Build
和 Microsoft.Bcl
才能让跨平台的东西工作。 System.Net.Http
不依赖于它们。可以跳过 Bcl 包吗?
System.Net.Http
缺少一些 Http 扩展方法,例如 SupportsPreAuthenticate
,尝试调用这些方法会导致运行时错误(缺少方法)。我们该如何应对?
这已经存在很长时间了,并且仍然令人困惑。我自己也看到过这样的消息,但截至目前,System.Net.Http 似乎是正确的选择,至少对于 Windows 平台上的 .NET 来说是这样,并且没有外部依赖性。
对于.NET Core,我使用了Microsoft.Net.Http although it does require Microsoft.BCL。除非您遇到问题,否则我建议让遗留系统保持原样,尤其是因为这些名称空间似乎是移动目标。
如果这还不足以让您感到困惑,HttpClient Sample linked from System.Net.Http
uses Windows.Web.Http!该实施适用于 Windows 商店应用。
也许明年这一切都会再次改变。
我对 HttpClient
的包装感到困惑。早些时候它作为 Microsoft.Http.Net
NuGet 包的一部分分发,而 System.Net.Http
被认为是遗留的。看起来现在情况正好相反:有一个适用于所有平台的全新 System.Net.Http
软件包,并且 Microsoft.Net.Http
已经有一段时间没有更新了,据 Microsoft 开发团队的人员称将被弃用。
接下来的问题:
- 我们可以用(最新的)
System.Net.Http
替换对Microsoft.Net.Http
NuGet 包的依赖吗? - 旧版 .NET 4.0 平台是否仍应使用
Microsoft.Net.Http
? 非 Windows 平台(iOS、Android)呢?新的System.Net.Http
支持它们,但我记得Microsoft.Net.Http
我必须额外安装Microsoft.Bcl.Build
和Microsoft.Bcl
才能让跨平台的东西工作。System.Net.Http
不依赖于它们。可以跳过 Bcl 包吗? System.Net.Http
缺少一些 Http 扩展方法,例如SupportsPreAuthenticate
,尝试调用这些方法会导致运行时错误(缺少方法)。我们该如何应对?
这已经存在很长时间了,并且仍然令人困惑。我自己也看到过这样的消息,但截至目前,System.Net.Http 似乎是正确的选择,至少对于 Windows 平台上的 .NET 来说是这样,并且没有外部依赖性。
对于.NET Core,我使用了Microsoft.Net.Http although it does require Microsoft.BCL。除非您遇到问题,否则我建议让遗留系统保持原样,尤其是因为这些名称空间似乎是移动目标。
如果这还不足以让您感到困惑,HttpClient Sample linked from System.Net.Http
uses Windows.Web.Http!该实施适用于 Windows 商店应用。
也许明年这一切都会再次改变。