Cet article a fait l'objet d'une traduction manuelle. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte.
Traduction
Source
Ce sujet n'a pas encore été évalué - Évaluez ce sujet

HttpListener, classe

Fournit un écouteur de protocole HTTP simple, contrôlé par programme. Cette classe ne peut pas être héritée.

System.Object
  System.Net.HttpListener

Espace de noms :  System.Net
Assembly :  System (dans System.dll)
public sealed class HttpListener : IDisposable

Le type HttpListener expose les membres suivants.

  Nom Description
Méthode publique HttpListener Initialise une nouvelle instance de la classe HttpListener.
Début
  Nom Description
Propriété publique AuthenticationSchemes Obtient ou définit le schéma utilisé pour authentifier les clients.
Propriété publique AuthenticationSchemeSelectorDelegate Obtient ou définit le délégué appelé pour déterminer le protocole utilisé lors de l'authentification des clients.
Propriété publique DefaultServiceNames Obtient une liste par défaut des noms de fournisseurs de services (SPN) déterminée par les préfixes enregistrés.
Propriété publique ExtendedProtectionPolicy Obtient ou définit le ExtendedProtectionPolicy à utiliser pour la protection étendue d'une session.
Propriété publique ExtendedProtectionSelectorDelegate Obtient ou définit le délégué appelé pour déterminer le ExtendedProtectionPolicy à utiliser pour chaque requête.
Propriété publique IgnoreWriteExceptions Obtient ou définit une valeur Boolean spécifiant si votre application reçoit des exceptions qui se produisent lorsque HttpListener envoie la réponse au client.
Propriété publique IsListening Obtient une valeur qui indique si HttpListener a été démarré.
Propriété publique Membre statique IsSupported Obtient une valeur qui indique si HttpListener peut être utilisé avec le système d'exploitation actuel.
Propriété publique Prefixes Obtient les préfixes URI (Uniform Resource Identifier) gérés par cet objet HttpListener.
Propriété publique Realm Obtient ou définit le domaine, ou partition de ressource, associé à cet objet HttpListener.
Propriété publique UnsafeConnectionNtlmAuthentication Obtient ou définit une valeur Boolean qui contrôle si, lorsque NTLM est utilisé, les demandes supplémentaires utilisant la même connexion TCP (Transmission Control Protocol) doivent être authentifiées.
Début
  Nom Description
Méthode publique Abort Arrête immédiatement l'objet HttpListener, en ignorant toutes les demandes actuellement mises en file d'attente.
Méthode publique BeginGetContext Commence à récupérer une demande entrante de façon asynchrone.
Méthode publique Close Arrête le HttpListener.
Méthode publique EndGetContext Met fin à une opération asynchrone pour récupérer une demande du client entrante.
Méthode publique Equals(Object) Détermine si l'Object spécifié est égal à l'Object en cours. (Hérité de Object.)
Méthode protégée Finalize Autorise un objet à tenter de libérer des ressources et d'exécuter d'autres opérations de netto***ge avant qu'il ne soit récupéré par l'opération garbage collection. (Hérité de Object.)
Méthode publique GetContext Attend une demande entrante et retourne les résultats lorsqu'elle est reçue.
Méthode publique GetHashCode Sert de fonction de hachage pour un type particulier. (Hérité de Object.)
Méthode publique GetType Obtient le Type de l'instance actuelle. (Hérité de Object.)
Méthode protégée MemberwiseClone Crée une copie superficielle de l'objet Object actif. (Hérité de Object.)
Méthode publique Start Permet à cette instance de recevoir des demandes entrantes.
Méthode publique Stop Entraîne l'arrêt de la réception des demandes entrantes par cette instance.
Méthode publique ToString Retourne une chaîne qui représente l'objet actuel. (Hérité de Object.)
Début
  Nom Description
Implémentation d'interface explicite Méthode privée IDisposable.Dispose Infrastructure. Libère les ressources détenues par cet objet HttpListener.
Début

À l'aide de la classe HttpListener, vous pouvez créer un écouteur de protocole HTTP simple qui répond aux requêtes HTTP. L'écouteur est actif pendant la durée de vie de l'objet HttpListener et s'exécute au sein de votre application avec ses autorisations.

Remarque Remarque

Cette classe n'est disponible que sur des ordinateurs exécutant les systèmes d'exploitation Windows XP SP2 ou Windows Server 2003. Si vous essayez de créer un objet HttpListener sur un ordinateur qui exécute un système d'exploitation antérieur, le constructeur lève une exception PlatformNotSupportedException.

Pour utiliser HttpListener, créez une nouvelle instance de la classe à l'aide du constructeur HttpListener et utilisez la propriété Prefixes pour accéder à la collection contenant les chaînes qui spécifient les préfixes URI (Uniform Resource Identifier) que le HttpListener doit traiter.

Une chaîne du préfixe URI est composée d'un schéma (http ou https), d'un hôte, d'un port facultatif et d'un chemin d'accès facultatif. Par exemple, "http://www.contoso.com:8080/customerData/" est une chaîne de préfixe complète. Les préfixes doivent se terminer par une barre oblique ("/"). L'objet HttpListener possédant le préfixe qui correspond le plus à un URI demandé répond à la demande. Plusieurs objets HttpListener ne peuvent pas ajouter le même préfixe ; une exception Win32Exception est levée si HttpListener ajoute un préfixe qui est déjà en cours d'utilisation.

Lorsqu'un port est spécifié, l'élément hôte peut être remplacé par "*" pour indiquer que HttpListener accepte les requêtes envoyées au port si l'URI demandé ne correspond à aucun autre préfixe. Par exemple, pour recevoir toutes les requêtes envoyées au port 8080 lorsque l'URI demandé n'est géré par aucun HttpListener, le préfixe est « http://*:8080/ ». De la même manière, pour spécifier que le HttpListener accepte toutes les requêtes envoyées à un port, remplacez l'élément hôte par le caractère « + » : « https://+:8080 ». Les caractères "*" et "+" peuvent être présents dans les préfixes qui incluent des chemins d'accès.

Pour commencer à écouter les requêtes de clients, ajoutez les préfixes URI à la collection et appelez la méthode Start. HttpListener propose à la fois des modèles synchrones et asynchrones pour traiter les demandes du client. Les demandes et leurs réponses associées sont accessibles à l'aide de l'objet HttpListenerContext retourné par la méthode GetContext ou ses équivalents asynchrones, les méthodes BeginGetContext et EndGetContext.

Le modèle synchrone est approprié si votre application doit rester bloquée en attendant une demande du client et si vous ne souhaitez traiter qu'une demande à la fois. À l'aide du modèle synchrone, appelez la méthode GetContext qui attend qu'un client envoie une demande. La méthode vous retourne un objet HttpListenerContext à traiter lorsqu'une demande est reçue.

Dans le modèle asynchrone plus complexe, votre application ne reste pas bloquée en attendant des demandes et chaque demande est traitée dans son propre thread d'exécution. Utilisez la méthode BeginGetContext pour spécifier une méthode définie par l'application à appeler pour chaque requête entrante. Dans cette méthode, appelez la méthode EndGetContext pour obtenir la demande, traitez-la et répondez-y.

Dans l'un ou l'autre modèle, les requêtes entrantes sont accessibles à l'aide de la propriété HttpListenerContext.Request et sont représentées par des objets HttpListenerRequest. De la même façon, les réponses sont accessibles à l'aide de la propriété HttpListenerContext.Response et sont représentées par des objets HttpListenerResponse. Ces objets partagent certaines fonctionnalités avec les objets HttpWebRequest et HttpWebResponse, mais ces derniers objets ne peuvent pas être utilisés conjointement avec HttpListener, car ils implémentent des comportements de clients, et non de serveurs.

HttpListener peut exiger l'authentification du client. Vous pouvez spécifier un schéma particulier à utiliser pour l'authentification, ou un délégué qui détermine le schéma à utiliser. Vous devez exiger une certaine forme d'authentification pour obtenir des informations relatives à l'identité du client. Pour plus d'informations, consultez les propriétés User, AuthenticationSchemes et AuthenticationSchemeSelectorDelegate.

Remarque Remarque

Si vous créez HttpListener à l'aide de https, vous devez sélectionner un certificat de serveur pour cet écouteur. Sinon, une requête HttpWebRequest de ce HttpListener échouera avec une fin inattendue de la connexion.

Remarque Remarque

Vous pouvez configurer des Certificats de serveur et d'autres options d'écouteur à l'aide de HttpCfg.exe. Consultez http://msdn.microsoft.com/zh-tw/library/aa364478(vs.85).aspx pour plus de détails. Le fichier exécutable est fourni avec Windows Server 2003 ou peut être construit à partir du code source disponible dans le Kit de développement Platform SDK.

Remarque Remarque

Si vous spécifiez plusieurs schémas d'authentification pour HttpListener, l'écouteur sélectionnera les clients dans l'ordre suivant : Negotiate, NTLM, Digest, puis Basic.

Remarque sur la plateforme Windows Server 2003 : Est requis pour utiliser cette classe.

Remarque sur la plateforme Windows XP Édition familiale, Windows XP Professionnel Édition x64, Windows Server 2003 : Le Service Pack 2 ou ultérieur est requis pour utiliser cette classe

L'exemple de code suivant illustre l'utilisation de HttpListener.


// This example requires the System and System.Net namespaces.
public static void SimpleListenerExample(string[] prefixes)
{
    if (!HttpListener.IsSupported)
    {
        Console.WriteLine ("Windows XP SP2 or Server 2003 is required to use the HttpListener class.");
        return;
    }
    // URI prefixes are required,
    // for example "http://contoso.com:8080/index/".
    if (prefixes == null || prefixes.Length == 0)
      throw new ArgumentException("prefixes");

    // Create a listener.
    HttpListener listener = new HttpListener();
    // Add the prefixes.
    foreach (string s in prefixes)
    {
        listener.Prefixes.Add(s);
    }
    listener.Start();
    Console.WriteLine("Listening...");
    // Note: The GetContext method blocks while waiting for a request. 
    HttpListenerContext context = listener.GetContext();
    HttpListenerRequest request = context.Request;
    // Obtain a response object.
    HttpListenerResponse response = context.Response;
    // Construct a response.
    string responseString = "<HTML><BODY> Hello world!</BODY></HTML>";
    byte[] buffer = System.Text.Encoding.UTF8.GetBytes(responseString);
    // Get a response stream and write the response to it.
    response.ContentLength64 = buffer.Length;
    System.IO.Stream output = response.OutputStream;
    output.Write(buffer,0,buffer.Length);
    // You must close the output stream.
    output.Close();
    listener.Stop();
}


.NET Framework

Pris en charge dans : 4, 3.5, 3.0, 2.0

.NET Framework Client Profile

Pris en charge dans : 4, 3.5 SP1

Windows 7, Windows Vista SP1 ou ultérieur, Windows XP SP3, Windows XP SP2 Édition x64, Windows Server 2008 (installation minimale non prise en charge), Windows Server 2008 R2 (installation minimale prise en charge avec SP1 ou version ultérieure), Windows Server 2003 SP2

Le .NET Framework ne prend pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.
Tous les membres static (Shared en Visual Basic) publics de ce type sont thread-safe. Il n'est pas garanti que les membres d'instance soient thread-safe.
Cela vous a-t-il été utile ?
(1500 caractères restants)
Contenu de la communauté Ajouter
Annotations FAQ