Connexion aux services Web (HTML)

[ Cet article est destiné aux développeurs de Windows 8.x et Windows Phone 8.x qui créent des applications Windows Runtime. Si vous développez une application pour Windows 10, voir la Documentation ]

Ces rubriques illustrent diverses méthodes pour se connecter à un service Web dans une application Windows Runtime. La méthode recommandée consiste à utiliser Windows.Web.Http.HttpClient, une nouvelle classe Windows Runtime disponible pour tous les langages. Il s’agit de l’API la plus puissante et la plus complète permettant à une application d’accéder à un service Web.

Les classes incluses dans l’espace de noms Windows.Web.Http offrent une interface de programmation pour les applications clientes HTTP modernes. L’espace de noms Windows.Web.Http et les espaces de noms associés Windows.Web.Http.Headers et Windows.Web.Http.Filters fournissent des composants clients HTTP qui permettent aux utilisateurs d’effectuer des requêtes HTTP et de recevoir des requêtes HTTP à partir de services Web modernes sur HTTP.

Pour les opérations de requête HTTP élémentaires, Windows.Web.Http.HttpClient présente une interface simple permettant de gérer les tâches les plus courantes et fournit des paramètres par défaut judicieux pour l’authentification (AUTH) qui s’appliquent à la plupart des scénarios. Pour les opérations HTTP plus complexes, de nombreuses fonctionnalités supplémentaires sont disponibles :

Les rubriques de cette section décrivent également un wrapper Bibliothèque Windows pour JavaScript pour XMLHttpRequest appelé WinJS.xhr. WinJS.xhr facilite l’accès au contenu Web dans votre application. Vous pouvez utiliser WinJS.xhr pour exécuter des requêtes HTTP ou HTTPS pour télécharger ou charger du contenu et des fichiers de tout format.

À la différence de XMLHttpRequest, qui vous permet d’indiquer si la requête doit être exécutée de façon asynchrone, WinJS.xhr est toujours asynchrone. WinJS.xhr retourne WinJS.Promise, ce qui vous permet de gérer les requêtes achevées, les erreurs et les requêtes en cours en utilisant les méthodes then ou done.

Avertissement  Il est maintenant possible d’utiliser XMLHttpRequest pour transférer des objets extrêmement volumineux, comme les objets Blob et les objets FormData, dont le téléchargement peut prendre beaucoup de temps. Vous pouvez également utiliser Windows.Web.Http.HttpClient pour envoyer et recevoir de très gros objets, y compris des flux. Une application pouvant être arrêtée à tout moment, il vaut mieux utiliser les API de transfert en arrière-plan de l’espace de noms Windows.Networking.BackgroundTransfer pour ces opérations. Pour plus d’informations sur le chargement et le téléchargement de contenu volumineux, voir Comment charger un fichier et Transfert de données en arrière-plan.

 

Le tableau suivant répertorie les API qui peuvent être utilisées par les applications écrites en JavaScript pour accéder à un service Web. « Plateforme » indique la version de Windows dans laquelle la fonctionnalité a été ajoutée.

API Plateforme Commentaires

Windows.Web.Http.HttpClient

Windows 8.1, Windows Phone 8.1, Windows Server 2012 R2

Il s’agit de la méthode recommandée pour se connecter à un serveur HTTP pour envoyer et recevoir des données.

Cette fonctionnalité est aussi prise en charge dans les applications écrites en JavaScript, C#, Visual Basic et C++

WinJS.xhr Windows 8, Windows Phone 8.1, Windows Server 2012,

Sur Windows 8 et Windows Server 2012, il s’agissait de la méthode recommandée quand XMLHttpRequest ne convenait pas.

XMLHttpRequest Windows 8, Windows Phone 8.1, Windows Server 2012 Cet objet et cette API sont disponibles dans les implémentations JavaScript sur la plupart des navigateurs Web modernes.

 

Audience de développeurs

Développeurs utilisant JavaScript et HTML intéressés par la création d’applications qui se connectent à un service Web.

Les informations fournies dans cette rubrique s’appliquent aux applications écrites en JavaScript et HTML.

Pour plus d’informations sur la façon de se connecter à un service Web pour les applications écrites en C++/XAML et les applications utilisant .NET Framework 4.5 écrites en C# ou Visual Basic, voir Connexion aux services Web (XAML).

Dans cette section

Rubrique Description

Comment se connecter à un serveur HTTP à l’aide de Windows.Web.Http

Vous pouvez envoyer une requête GET à un service Web et extraire la réponse à l’aide de la classe Windows.Web.Http.HttpClient dans l’espace de noms Windows.Web.Http.

Comment demander une connexion HTTPS

En définissant la valeur de l’élément "ms-https-connections-only" meta, vous pouvez empêcher votre application d’utiliser des connexions HTTP pour la navigation ou d’autres tâches de récupération de contenu Web non multimédia. Lorsque vous affectez à l’attribut content de cet élément meta la valeur "true", la navigation HTTP et les tâches de récupération de contenu Web non multimédia échouent.

Comment télécharger un fichier avec WinJS.xhr

WinJS.xhr facilite le téléchargement de contenu web dans votre application. Cette rubrique explique comment télécharger un fichier à l’aide de WinJS.xhr, gérer les erreurs et signaler la progression du téléchargement. Elle explique aussi comment télécharger différents types de contenu.

Comment charger des données binaires à l’aide de WinJS.xhr

Vous pouvez charger et télécharger des données binaires en utilisant WinJS.xhr (qui inclut XMLHttpRequest). Cet exemple explique comment charger une image bitmap depuis vos images. La méthode Windows Runtime utilisée pour ouvrir le fichier d’image bitmap renvoie un IRandomAccessStream, vous devez donc utiliser un MSApp.createBlobFromRandomAccessStream pour le convertir en Blob.

Avertissement  Vous pouvez désormais utiliser XMLHttpRequest pour charger ou télécharger des objets plus volumineux, comme les objets Blob et les objets FormData, dont le téléchargement peut prendre beaucoup de temps. Les applications pouvant être arrêtées à tout moment, il vaut mieux utiliser les API de transfert en arrière-plan de Windows Runtime pour ces opérations. Pour plus d’informations sur le chargement et le téléchargement de contenu, voir Comment charger un fichier et Comment télécharger un fichier. Pour obtenir une description générale du transfert en arrière-plan, voir Transferring data in the background.
 

Comment s’assurer que WinJS.xhr renvoie les demandes

Lorsque vous demandez des ressources Web à l’aide de WinJS.xhr, la réponse peut être mise en cache. Autrement dit, au lieu d’être renvoyées, les demandes ultérieures retournent la version de la ressource qui existe déjà sur l’ordinateur client. Toutefois, vous pouvez ajouter un en-tête HTTP qui garantit que la demande est renvoyée, même si elle a déjà été mise en cache.

Définition de valeurs de temporisation avec WinJS.xhr ou HttpClient

Vous pouvez définir des valeurs de délai d’expiration directement avec XMLHttpRequest, mais pas avec Windows.Web.Http.HttpClient ou WinJS.xhr. Il existe toutefois une méthode permettant de définir des délais d’expiration sur les objets WinJS.Promise. Si vous appelez WinJS.Promise.timeout, vous avez la certitude que la demande sera annulée si elle n’a pas abouti dans le délai imparti.

Comment créer une application Web hybride

Une application Web hybride est une application qui utilise les données en provenance de deux sources ou plus pour créer quelque chose de nouveau. Cet exemple vous montre comment utiliser XMLHttpRequest (XHR) pour récupérer et afficher un flux RSS (Really Simple Syndication) distant.

 

Rubriques associées

Autres ressources

Déclarations des fonctionnalités d’application

Gestion des exceptions dans les applications réseau

Comment configurer les fonctionnalités d’isolement réseau

Comment activer le bouclage et déboguer l’isolement réseau

Référence

Windows.Foundation.Uri

Windows.Web.Http

Windows.Web.Http.Filters

Windows.Web.Http.Headers

Windows.Web.Http.HttpClient

WinJS.xhr

XMLHttpRequest

Exemples

Exemple HttpClient

Exemple d’intégration de contenu et de contrôles à partir de services Web

Exemple d’utilisation d’un objet Blob pour enregistrer et charger du contenu

Exemple d’authentification Web

XHR, gestion des erreurs de navigation et exemple de schémas d’URL