HttpClient Classe

Définition

Envoie des requêtes HTTP et reçoit des réponses HTTP à partir 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 .

public ref class HttpClient sealed : IClosable, IStringable
/// [Windows.Foundation.Metadata.Activatable(65536, Windows.Foundation.UniversalApiContract)]
/// [Windows.Foundation.Metadata.Activatable(Windows.Web.Http.IHttpClientFactory, 65536, Windows.Foundation.UniversalApiContract)]
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class HttpClient final : IClosable, IStringable
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
/// [Windows.Foundation.Metadata.Activatable(65536, "Windows.Foundation.UniversalApiContract")]
/// [Windows.Foundation.Metadata.Activatable(Windows.Web.Http.IHttpClientFactory, 65536, "Windows.Foundation.UniversalApiContract")]
class HttpClient final : IClosable, IStringable
[Windows.Foundation.Metadata.Activatable(65536, typeof(Windows.Foundation.UniversalApiContract))]
[Windows.Foundation.Metadata.Activatable(typeof(Windows.Web.Http.IHttpClientFactory), 65536, typeof(Windows.Foundation.UniversalApiContract))]
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class HttpClient : System.IDisposable, IStringable
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
[Windows.Foundation.Metadata.Activatable(65536, "Windows.Foundation.UniversalApiContract")]
[Windows.Foundation.Metadata.Activatable(typeof(Windows.Web.Http.IHttpClientFactory), 65536, "Windows.Foundation.UniversalApiContract")]
public sealed class HttpClient : System.IDisposable, IStringable
function HttpClient(filter)
Public NotInheritable Class HttpClient
Implements IDisposable, IStringable
Héritage
Object Platform::Object IInspectable HttpClient
Attributs
Implémente

Configuration requise pour Windows

Famille d’appareils
Windows 10 (introduit dans 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (introduit dans v1.0)

Exemples

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

using System;

var uri = new System.Uri("http://www.bing.com");
using (var httpClient = new Windows.Web.Http.HttpClient())
{
    // Always catch network exceptions for async methods
    try
    {
        string result = await httpClient.GetStringAsync(uri);
    }
    catch (Exception ex)
    {
        // Details in ex.Message and ex.HResult.
    }
}
// Having exited the scope of the using statement, httpClient.Dispose() will be called
// automatically, thus freeing up system resources (the underlying socket, and memory
// used for the object).
#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;

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 
{
    // 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).

La classe HttpClient est souvent utilisée par une application pour télécharger, puis analyser du texte. Il est possible que l’encodage de caractères spécifié dans l’en-tête Content-Type par un serveur HTTP ne corresponde pas à l’encodage de caractères du corps de la réponse HTTP (encodage XML dans un document XML, par exemple). Une façon d’utiliser HttpClient avec du texte consiste à appeler la méthode GetStringAsync et à passer la chaîne retournée à l’analyseur de texte. Toutefois, cela peut entraîner des erreurs si content-type n’est pas un type expressible en tant que chaîne. Un moyen fiable d’utiliser HttpClient avec un analyseur XML consiste à appeler la méthode GetBufferAsync et à analyser la mémoire tampon pour l’élément «< ?xml> ». Ensuite, utilisez l’encodage de caractères spécifié (« <xmlversion="1.0 » encoding="UTF-8 » ?> », par exemple) pour analyser le corps de la réponse HTTP. Pour d’autres formats de texte, des méthodes similaires peuvent être utilisées lorsque l’application analyse la partie initiale du corps de la réponse HTTP pour déterminer l’encodage de caractères utilisé.

Remarques

La classe HttpClient instance sert de session pour envoyer des requêtes HTTP et recevoir des réponses. Un instance HttpClient est une collection de paramètres qui s’appliquent à toutes les requêtes exécutées par ce instance. En outre, chaque instance HttpClient utilise son propre pool de connexions, isolant ses requêtes des requêtes exécutées par d’autres instances HttpClient.

HttpClient fait également office de classe à utiliser avec des filtres pour des clients HTTP plus spécifiques. Par exemple, un HttpClientFilter fournit des méthodes supplémentaires spécifiques à un service de réseau social (une méthode GetFriends, pour instance).

Si une application utilisant HttpClient et des classes associées dans l’espace de noms Windows.Web.Http 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 est très importante, ce qui peut entraîner une réduction des performances.

Pour obtenir un exemple de code en C# et C++/WinRT 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.

Historique des versions

Version de Windows Version du SDK Valeur ajoutée
1903 18362 TryDeleteAsync
1903 18362 TryGetAsync(Uri)
1903 18362 TryGetAsync(Uri,HttpCompletionOption)
1903 18362 TryGetBufferAsync
1903 18362 TryGetInputStreamAsync
1903 18362 TryGetStringAsync
1903 18362 TryPostAsync
1903 18362 TryPutAsync
1903 18362 TrySendRequestAsync(HttpRequestMessage)
1903 18362 TrySendRequestAsync(HttpRequestMessage,HttpCompletionOption)

Constructeurs

HttpClient()

Initialise une nouvelle instance de la classe HttpClient. Pour obtenir des conseils de programmation pour la classe HttpClient et des exemples de code, consultez la rubrique conceptuelle HttpClient .

HttpClient(IHttpFilter)

Initialise une nouvelle instance de la classe HttpClient avec un filtre spécifique pour la gestion des messages de réponse HTTP. Pour obtenir des conseils de programmation pour la classe HttpClient et des exemples de code, consultez la rubrique conceptuelle HttpClient .

Propriétés

DefaultPrivacyAnnotation

Envoie des requêtes HTTP et reçoit des réponses HTTP à partir 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 .

DefaultRequestHeaders

Obtient une collection d’en-têtes qui doivent être envoyés avec chaque requête. Pour obtenir des conseils de programmation pour la classe HttpClient et des exemples de code, consultez la rubrique conceptuelle HttpClient .

Méthodes

Close()

Ferme le instance HttpClient et libère les ressources allouées. Pour obtenir des conseils de programmation pour la classe HttpClient et des exemples de code, consultez la rubrique conceptuelle HttpClient .

DeleteAsync(Uri)

Envoyez une demande DELETE à l’URI spécifié en tant qu’opération asynchrone. Pour obtenir des conseils de programmation pour la classe HttpClient et des exemples de code, consultez la rubrique conceptuelle HttpClient .

Dispose()

Exécute les tâches définies par l'application associées à la libération ou à la redéfinition des ressources non managées.

GetAsync(Uri)

Envoie une requête GET vers l'URI spécifié sous forme d'opération asynchrone. Pour obtenir des conseils de programmation pour la classe HttpClient et des exemples de code, consultez la rubrique conceptuelle HttpClient .

GetAsync(Uri, HttpCompletionOption)

Envoyez une requête GET à l’URI spécifié avec une option d’achèvement HTTP en tant qu’opération asynchrone. Pour obtenir des conseils de programmation pour la classe HttpClient et des exemples de code, consultez la rubrique conceptuelle HttpClient .

GetBufferAsync(Uri)

Envoyez une requête GET à l’URI spécifié et retournez le corps de la réponse en tant que mémoire tampon dans une opération asynchrone. Pour obtenir des conseils de programmation pour la classe HttpClient et des exemples de code, consultez la rubrique conceptuelle HttpClient .

GetInputStreamAsync(Uri)

Envoyez une requête GET à l’URI spécifié et retournez le corps de la réponse en tant que flux dans une opération asynchrone. Pour obtenir des conseils de programmation pour la classe HttpClient et des exemples de code, consultez la rubrique conceptuelle HttpClient .

GetStringAsync(Uri)

Envoie une requête GET à l'URI spécifié et retourne le corps de la réponse sous forme de chaîne dans une opération asynchrone. Pour obtenir des conseils de programmation pour la classe HttpClient et des exemples de code, consultez la rubrique conceptuelle HttpClient .

PostAsync(Uri, IHttpContent)

Envoyez une requête POST à l’URI spécifié en tant qu’opération asynchrone. Pour obtenir des conseils de programmation pour la classe HttpClient et des exemples de code, consultez la rubrique conceptuelle HttpClient .

PutAsync(Uri, IHttpContent)

Envoie une requête PUT vers l'URI spécifié sous forme d'opération asynchrone. Pour obtenir des conseils de programmation pour la classe HttpClient et des exemples de code, consultez la rubrique conceptuelle HttpClient .

SendRequestAsync(HttpRequestMessage)

Envoie une requête HTTP en tant qu'opération asynchrone. Pour obtenir des conseils de programmation pour la classe HttpClient et des exemples de code, consultez la rubrique conceptuelle HttpClient .

SendRequestAsync(HttpRequestMessage, HttpCompletionOption)

Envoyez une requête HTTP avec une option d’achèvement HTTP en tant qu’opération asynchrone. Pour obtenir des conseils de programmation pour la classe HttpClient et des exemples de code, consultez la rubrique conceptuelle HttpClient .

ToString()

Renvoie une chaîne qui représente l’objet HttpClient actuel. Pour obtenir des conseils de programmation pour la classe HttpClient et des exemples de code, consultez la rubrique conceptuelle HttpClient .

TryDeleteAsync(Uri)

Envoyez une demande DELETE à l’URI spécifié en tant qu’opération asynchrone. Pour obtenir des conseils de programmation pour la classe HttpClient et des exemples de code, consultez la rubrique conceptuelle HttpClient .

TryGetAsync(Uri)

Envoie une requête GET à l’URI spécifié en tant qu’opération asynchrone. Pour obtenir des conseils de programmation pour la classe HttpClient et des exemples de code, consultez la rubrique conceptuelle HttpClient .

TryGetAsync(Uri, HttpCompletionOption)

Envoie une requête GET à l’URI spécifié en tant qu’opération asynchrone. Pour obtenir des conseils de programmation pour la classe HttpClient et des exemples de code, consultez la rubrique conceptuelle HttpClient .

TryGetBufferAsync(Uri)

Envoyez une requête GET à l’URI spécifié et retournez le corps de la réponse en tant que HttpGetBufferResult avec une valeur IBuffer dans une opération asynchrone. Pour obtenir des conseils de programmation pour la classe HttpClient et des exemples de code, consultez la rubrique conceptuelle HttpClient .

TryGetInputStreamAsync(Uri)

Envoyez une requête GET à l’URI spécifié et retournez le corps de la réponse en tant que flux dans une opération asynchrone. Pour obtenir des conseils de programmation pour la classe HttpClient et des exemples de code, consultez la rubrique conceptuelle HttpClient .

TryGetStringAsync(Uri)

Envoie une requête GET à l'URI spécifié et retourne le corps de la réponse sous forme de chaîne dans une opération asynchrone. Pour obtenir des conseils de programmation pour la classe HttpClient et des exemples de code, consultez la rubrique conceptuelle HttpClient .

TryPostAsync(Uri, IHttpContent)

Envoie une requête POST à l’URI spécifié en tant qu’opération asynchrone. Pour obtenir des conseils de programmation pour la classe HttpClient et des exemples de code, consultez la rubrique conceptuelle HttpClient .

TryPutAsync(Uri, IHttpContent)

Envoie une requête PUT à l’URI spécifié en tant qu’opération asynchrone. Pour obtenir des conseils de programmation pour la classe HttpClient et des exemples de code, consultez la rubrique conceptuelle HttpClient .

TrySendRequestAsync(HttpRequestMessage)

Envoie une requête HTTP à l’URI spécifié en tant qu’opération asynchrone. Pour obtenir des conseils de programmation pour la classe HttpClient et des exemples de code, consultez la rubrique conceptuelle HttpClient .

TrySendRequestAsync(HttpRequestMessage, HttpCompletionOption)

Envoie une requête HTTP avec une option d’achèvement à l’URI spécifié en tant qu’opération asynchrone. Pour obtenir des conseils de programmation pour la classe HttpClient et des exemples de code, consultez la rubrique conceptuelle HttpClient .

S’applique à

Voir aussi