Windows.Web.Http Espace de noms

Fournit une API cliente HTTP moderne pour l’application UWP.

Classes

HttpBufferContent

Fournit du contenu HTTP qui utilise une mémoire tampon.

HttpClient

Envoie les requêtes HTTP et reçoit les réponses HTTP d’une ressource identifiée par un URI. Pour obtenir des conseils de programmation pour la classe HttpClient et des exemples de code, consultez la rubrique conceptuelle HttpClient .

HttpCookie

Fournit un ensemble de propriétés et de méthodes pour gérer un cookie HTTP.

HttpCookieCollection

Fournit un conteneur de collection pour les instances de la classe HttpCookie .

HttpCookieManager

Ajoutez ou supprimez un HttpCookie ou affichez les cookies associés à une application.

HttpFormUrlEncodedContent

Fournit du contenu HTTP qui utilise des données nom/valeur encodées avec le type MIME application/x-www-form-urlencoded .

HttpGetBufferResult

Combine le résultat final de la mémoire tampon avec les éléments suivants : la requête HTTP d’origine, la réponse HTTP obtenue (le cas échéant), une valeur d’erreur étendue et une indication réussie.

HttpGetInputStreamResult

Combine le résultat final du flux d’entrée avec les éléments suivants : la requête HTTP d’origine, la réponse HTTP obtenue (le cas échéant), une valeur d’erreur étendue et une indication réussie.

HttpGetStringResult

Combine le résultat de la chaîne finale avec les éléments suivants : la requête HTTP d’origine, la réponse HTTP obtenue (le cas échéant), une valeur d’erreur étendue et une indication réussie.

HttpMethod

Récupère les méthodes HTTP standard telles que GET et POST et crée de nouvelles méthodes HTTP.

HttpMultipartContent

Fournit du contenu HTTP qui utilise le type MIME multipart/*.

HttpMultipartFormDataContent

Fournit du contenu HTTP qui utilise le type MIME multipart/form-data .

HttpRequestMessage

Représente un message de requête HTTP comprenant des en-têtes.

HttpRequestResult

Combine la requête HTTP d’origine avec les éléments suivants : la réponse HTTP obtenue (le cas échéant), une valeur d’erreur étendue et une indication réussie.

HttpResponseMessage

Représente un message de réponse HTTP comprenant les en-têtes, le code status et les données.

HttpStreamContent

Fournit du contenu HTTP qui utilise un flux.

HttpStringContent

Fournit du contenu HTTP qui utilise une chaîne.

HttpTransportInformation

Fournit des informations sur le transport sous-jacent utilisé par la connexion HTTP.

Structures

HttpProgress

Contient status informations sur la progression d’une opération HttpClient.

Interfaces

IHttpContent

Fournit une interface de base pour le corps d’une entité HTTP et les en-têtes de contenu.

Énumérations

HttpCompletionOption

Indique si les opérations HttpClient asynchrones sont considérées comme terminées lorsque toute la réponse est lue ou quand les en-têtes sont lus.

HttpProgressStage

Indique l’étape de progression d’une connexion HTTP.

HttpResponseMessageSource

Indique la source des données reçues dans HttpResponseMessage.

HttpStatusCode

Contient les valeurs des codes status définis pour HTTP dans la réponse à une requête HTTP.

HttpVersion

Représente la version du protocole HTTP.

Exemples

L’exemple de code suivant montre comment OBTENIR du contenu à partir d’un serveur HTTP sous forme de chaîne.

using System;
using Windows.Foundation;
using Windows.Web.Http;

// Note: the URI constructor will throw an exception
// if the string passed is not a valid URI
var uri = new Uri("http://example.com/datalist.aspx");
var httpClient = new HttpClient();

// Always catch network exceptions for async methods
try 
{
    var result = await httpClient.GetStringAsync(uri);
}
catch (Exception ex)
{
    // Details in ex.Message and ex.HResult.       
}

// Once your app is done using the HttpClient object call dispose to 
// free up system resources (the underlying socket and memory used for the object)
httpclient.Dispose();
#include "winrt/Windows.Foundation.h"
#include "winrt/Windows.Web.Http.h"
using namespace winrt;

Windows::Foundation::IAsyncAction HttpClientExample()
{
    Windows::Foundation::Uri uri{ L"http://www.bing.com" };
    Windows::Web::Http::HttpClient httpClient{};

    // Always catch network exceptions for async methods.
    try
    {
        auto response{ co_await httpClient.GetStringAsync(uri) };
    }
    catch (winrt::hresult_error const& ex)
    {
        // Details in ex.message() and ex.to_abi().
    }

    // The destructor of HttpClient frees system resources
    // (the underlying socket, and memory used for the object).
}
using namespace Windows::Foundation;
using namespace Windows::Web::Http;

// Note: the URI constructor will throw an exception
// if the string passed is not a valid URI
uri = ref new Uri("http://example.com/datalist.aspx");
httpClient = ref new HttpClient();

// Always catch network exceptions for async methods
try 
{
    httpClient->GetStringAsync(uri);
}
catch (Exception ^ ex) 
{
    // Details in ex.Message and ex.HResult.       
}

// In C++/CX, the system resources used by httpClient object are released 
// when the object falls out of scope or by the destructor (delete operator).

Remarques

L’espace de noms Windows.Web.Http et les espaces de noms Windows.Web.Http.Headers et Windows.Web.Http.Filters associés fournissent une interface de programmation pour l’application UWP qui cible les services HTTP et REST. Ces fonctionnalités de cette nouvelle API HTTP sont conçues pour être conformes à HTTP, comme défini dans la RFC 2616 par l’IETF. La nouvelle API HTTP offre une prise en charge cohérente en JavaScript, C#, VB.NET et C++ pour les développeurs.

Cette nouvelle API remplace l’utilisation de trois API différentes par des fonctionnalités différentes qui étaient auparavant nécessaires pour chaque projection de langage dans Windows 8.

Les classes dans Windows.Web.Http et les espaces de noms associés sont ciblées à tous les niveaux du développement HTTP et REST :

  • Développeurs HTTP de base
  • Développeurs de bibliothèque HTTP spécifiques au site
  • Développeurs HTTP avancés

Pour les développeurs HTTP de base, la nouvelle API dispose d’une interface simple pour gérer les tâches les plus courantes et les valeurs par défaut raisonnables pour l’authentification qui doivent fonctionner dans la plupart des environnements. Pour les développeurs de bibliothèques, le modèle objet cohérent et la prise en charge de plusieurs langages signifient que vous pouvez écrire une bibliothèque une fois pour les développeurs dans tous les langages. Pour les développeurs HTTP avancés, la nouvelle API inclut un ensemble complet de fonctionnalités.

L’espace de noms Windows.Web.Http et les espaces de noms associés fournissent les composants suivants :

Le contenu d’un message HTTP correspond au corps d’entité défini dans RFC 2616. Plusieurs classes et une interface de l’espace de noms Windows.Web.Http peuvent être utilisées pour le contenu HTTP, notamment :

  • IHttpContent : interface de base permettant aux développeurs de créer leurs propres objets de contenu. Il représente un corps d’entité HTTP et des en-têtes de contenu. Cette interface a des méthodes qui obtiennent et définissent les données de contenu réelles. Il fournit également des propriétés qui obtiennent et définissent des en-têtes liés au contenu.
  • HttpBufferContent : contenu HTTP qui utilise une mémoire tampon.
  • HttpFormUrlEncodedContent : contenu HTTP qui utilise des tuples nom/valeur encodés avec le type MIME application/x-www-form-urlencoded .
  • HttpMultipartContent : contenu HTTP qui utilise le type MIME multipart/*.
  • HttpMultipartFormDataContent : contenu HTTP qui utilise le type MIME multipart/form-data encodé.
  • HttpStreamContent : contenu HTTP qui utilise un flux. Ce type de contenu est utilisé par la méthode HTTP GET pour recevoir des données et la méthode HTTP POST pour charger des données.
  • HttpStringContent : contenu HTTP qui utilise une chaîne.

Les classes de l’espace de noms Windows.Web.Http.Headers représentent des en-têtes HTTP définis dans RFC 2616. Les en-têtes HTTP sont associés à HttpRequestMessage et HttpResponseMessage en tant que propriétés récupérées ou définies.

Les classes de l’espace de noms Windows.Web.Http peuvent utiliser des filtres basés sur les classes de l’espace de noms Windows.Web.Http.Filters . Les filtres fournissent des gestionnaires pour vous aider à résoudre les problèmes courants liés au service HTTP. Les filtres peuvent être chaînés dans une séquence pour résoudre des problèmes de service HTTP plus complexes. Plusieurs filtres prêts à l’emploi sont inclus avec Windows 8.1 pour aider les développeurs de bibliothèques à résoudre les problèmes courants liés au service HTTP. Ces filtres incluent des gestionnaires pour les connexions réseau surveillées et les nouvelles tentatives. Les développeurs de bibliothèque peuvent écrire leurs propres filtres pour les problèmes spécifiques au site (par exemple, un site peut utiliser la réponse 503 (Serveur indisponible) pour indiquer que la demande doit être retentée.

Si une application qui utilise l’espace de noms Windows.Web.Http et les espaces de noms Windows.Web.Http.Headers et Windows.Web.Http.Filters associés télécharge de grandes quantités de données (50 mégaoctets ou plus), l’application doit diffuser ces téléchargements en continu et ne pas utiliser la mise en mémoire tampon par défaut. Si la mise en mémoire tampon par défaut est utilisée, l’utilisation de la mémoire client devient très importante, ce qui peut réduire les performances.

Pour obtenir un exemple de code en C#/VB/C++ et XAML qui montre comment utiliser HttpClient pour se connecter à un serveur HTTP, consultez HttpClient.

Pour obtenir un exemple de code en JavaScript et HTML qui montre comment utiliser HttpClient pour se connecter à un serveur HTTP, consultez Connexion à un serveur HTTP à l’aide de Windows.Web.Http.