在为Windows开发.NET 4.5桌面应用程序时,我已经习惯使用System.Net.Http.HttpClient
进行与后端Web API的所有通信。我现在正在开发一个Windows应用商店应用,并注意到Windows.Web.Http.HttpClient
的存在。我已经找到了两个客户之间主要区别但没有运气的信息。
From MSDN我知道我应该在我的Windows应用商店应用中开始使用Windows.Web.Http.HttpClient
,因为可能会从API中移除System.Net.Http.HttpClient
:
注意 System.Net.Http和System.Net.Http.Headers命名空间可能在Windows的未来版本中不可用,以供Windows应用商店应用使用。从Windows 8.1和Windows Server 2012 R2开始,使用Windows.Web.Http命名空间中的Windows.Web.Http.HttpClient和相关的Windows.Web.Http.Headers和Windows.Web.Http.Filters命名空间代替Windows运行时应用程序
但除了这些信息之外,我很难弄清楚主要区别是什么以及使用Windows.Web.Http.HttpClient
的主要好处是什么?它添加了什么,我们还没有进入System.Net.Http.HttpClient
?
非常感谢官方文档支持的答案。
答案 0 :(得分:36)
Windows.Web.Http是一种WinRT API,支持所有WinRT编程语言:C#,VB,C ++ / CX和JavaScript。这使得该选项能够以您选择的语言编写相同的代码。
System.Net.Http是一个.NET API,它仅适用于C#和VB开发人员。
IInputStream
,IOutputStream
和IBuffer
。在某些情况下,避免将System.IO.Stream
转换为IInputStream
或IOutputStream
和System.Array
以及转换为Windows.Storage.Streams.IBuffer
的.NET扩展可以提高性能并节省资源。†对于Windows Universal Projects(UWP),System.Net.Http是Windows.Web.Http之上的包装器,如here所述。
进一步阅读:Demystifying HttpClient APIs in the Universal Windows Platform
答案 1 :(得分:14)
没有太多可以找到它。我想到的一些事情:
可以在this blog post中找到一些有用的信息,这些信息也引用了this Build video。他们谈论更好的缓存控制,以及添加过滤器进行身份验证,轻松访问cookie,重新连接等的方法。