Lors du développement d'applications de bureau .NET 4.5 pour Windows, j'ai été utilisé pour utiliser System.Net.Http.HttpClient
pour toutes les communications avec une API Web backend. Je suis en train de développer une application Windows Store et j'ai remarqué l'existence de Windows.Web.Http.HttpClient
. J'ai cherché des informations sur les principales différences entre les deux clients mais sans aucune chance.
De MSDN Je sais que je devrais commencer à utiliser Windows.Web.Http.HttpClient
dans mon application Windows Store depuis System.Net.Http.HttpClient
peut être supprimé de l'API:
Remarque L'espace de noms System.Net.Http et System.Net.Http.Headers pourrait ne plus être disponible dans les futures versions de Windows pour être utilisé par les applications du Windows Store. À partir de Windows 8.1 et Windows Server 2012 R2, utilisez Windows.Web.Http.HttpClient dans l'espace de noms Windows.Web.Http et les espaces de noms Windows.Web.Http.Headers et Windows.Web.Http.Filters à la place pour les applications Windows Runtime .
Mais en dehors de ces informations, j'ai du mal à comprendre quelles sont les principales différences et quel est le principal avantage de l'utilisation de Windows.Web.Http.HttpClient
? Qu'est-ce que cela ajoute que nous ne sommes pas déjà entrés dans System.Net.Http.HttpClient
?
Les réponses appuyées par une documentation officielle sont grandement appréciées.
Il n'y a pas grand-chose à y trouver. Certaines choses qui me viennent à l'esprit:
Certaines informations utiles peuvent être trouvées dans ce billet de blog qui faisait également référence à cette vidéo de construction . Ils parlent d'un meilleur contrôle du cache et d'un moyen d'ajouter des filtres pour l'authentification, un accès facile aux cookies, une reconnexion, etc.
Windows.Web.Http est une API WinRT disponible dans tous les langages de programmation WinRT pris en charge: C #, VB, C++/CX et JavaScript. Cela permet l'option d'écrire le même code dans la langue de votre choix.
System.Net.Http est une API .NET et n'est disponible que pour les développeurs C # et VB.
IInputStream
, IOutputStream
et IBuffer
. Éviter les extensions .NET qui convertissent System.IO.Stream
en IInputStream
ou IOutputStream
et System.Array
en Windows.Storage.Streams.IBuffer
peut améliorer les performances et économiser des ressources dans certains cas.HttpClient
( exemple )HttpClient
Cache-Control
en-tête ( exemple )System.Net.NetworkCredential
† Pour les projets universels Windows (UWP), System.Net.Http est un wrapper au-dessus de Windows.Web.Http, comme décrit ici .
Pour en savoir plus: Démystifier les API HttpClient dans la plateforme Windows universelle