我对HttpClient
的包装感到困惑。之前它作为Microsoft.Http.Net
NuGet包的一部分分发,而System.Net.Http
被认为是遗留的。现在看起来恰恰相反:所有平台都有一个新的System.Net.Http
包,Microsoft.Net.Http
暂时没有更新,根据微软开发团队的人员将被弃用
然后问题:
Microsoft.Net.Http
替换System.Net.Http
NuGet包的依赖项吗?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
,并且尝试调用这些方法会导致运行时错误(缺少方法)。我们该怎么处理这个?答案 0 :(得分:9)
这已经很长时间了并且仍然令人困惑。我自己看过这样的消息,但是现在看来System.Net.Http是正确的选择,至少对于Windows平台上的.NET而言没有外部依赖。
对于.NET Core,我使用了Microsoft.Net.Http,但确实需要Microsoft.BCL。除非您遇到问题,否则我建议保留遗留系统,特别是因为这些命名空间似乎是移动目标。
如果这对您来说不够混淆,System.Net.Http
链接的HttpClient Sample会使用Windows.Web.Http!该实现适用于Windows应用商店应用。
也许明年这一切都会再次改变。