Windows用の.NET 4.5デスクトップアプリを開発するとき、バックエンドWeb APIとのすべての通信にSystem.Net.Http.HttpClient
を使用するのに使用されました。現在、Windowsストアアプリを開発していますが、Windows.Web.Http.HttpClient
の存在に気付きました。私は、2つのクライアント間の主な違いは何であるかについての情報を探しましたが、運はありません。
MSDNからWindows.Web.Http.HttpClient
はAPIから削除される可能性があるため、WindowsストアアプリでSystem.Net.Http.HttpClient
の使用を開始する必要があることを知っています。
注System.Net.HttpおよびSystem.Net.Http.Headers名前空間は、Windowsストアアプリで使用するために、Windowsの将来のバージョンでは使用できなくなる可能性があります。 Windows 8.1およびWindows Server 2012 R2以降、Windowsランタイムアプリではなく、Windows.Web.Http名前空間のWindows.Web.Http.HttpClientと、関連するWindows.Web.Http.HeadersおよびWindows.Web.Http.Filters名前空間を使用します。 。
しかし、この情報は別として、Windows.Web.Http.HttpClient
を使用する主な違いと主な利点を理解するのは困難です。 System.Net.Http.HttpClient
にまだ入っていないことは何を追加しますか?
公式文書に裏付けられた回答は大歓迎です。
それについて見つけることはあまりありません。私の頭の中にあるいくつかのこと:
いくつかの有用な情報は this blog post にあります。これは this Build video も参照しています。彼らは、キャッシュ制御の改善、および認証、Cookieへの簡単なアクセス、再接続などのためのフィルターを追加する方法について語っています。
Windows.Web.Httpは、サポートされているすべてのWinRTプログラミング言語(C#、VB、C++/CX、およびJavaScript)で利用可能なWinRT APIです。これにより、選択した言語で同じコードを作成するオプションが有効になります。
System.Net.Httpは.NET APIであり、C#およびVB開発者のみが使用できます。
IInputStream
、IOutputStream
、IBuffer
などのWinRT型との統合が向上しています。 System.IO.Stream
をIInputStream
に、またはIOutputStream
とSystem.Array
をWindows.Storage.Streams.IBuffer
に変換する.NET拡張を避けると、パフォーマンスが向上し、リソースを節約できる場合があります。†Windows Universal Projects(UWP)の場合、System.Net.Httpは here で説明されているように、Windows.Web.Httpのラッパーです。