Exporter (0) Imprimer
Développer tout
Cet article a fait l'objet d'une traduction automatique. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte. Informations supplémentaires.
Traduction
Source

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.

  NomDescription
Méthode publiqueHttpListenerInitialise une nouvelle instance de la classe HttpListener.
Début

  NomDescription
Propriété publiqueAuthenticationSchemesObtient ou définit le schéma utilisé pour authentifier les clients.
Propriété publiqueAuthenticationSchemeSelectorDelegateObtient ou définit le délégué appelé pour déterminer le protocole utilisé lors de l'authentification des clients.
Propriété publiqueDefaultServiceNamesObtient une liste par défaut des noms de fournisseurs de services (SPN) déterminée par les préfixes enregistrés.
Propriété publiqueExtendedProtectionPolicyObtient ou définit le ExtendedProtectionPolicy à utiliser pour la protection étendue d'une session.
Propriété publiqueExtendedProtectionSelectorDelegateObtient ou définit le délégué appelé pour déterminer le ExtendedProtectionPolicy à utiliser pour chaque requête.
Propriété publiqueIgnoreWriteExceptionsObtient 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é publiqueIsListeningObtient une valeur qui indique si HttpListener a été démarré.
Propriété publiqueMembre statiqueIsSupportedObtient une valeur qui indique si HttpListener peut être utilisé avec le système d'exploitation actuel.
Propriété publiquePrefixesObtient les préfixes URI (Uniform Resource Identifier) gérés par cet objet HttpListener.
Propriété publiqueRealmObtient ou définit le domaine, ou partition de ressource, associé à cet objet HttpListener.
Propriété publiqueTimeoutManagerGestionnaire de délai d'attente pour cette instance HttpListener.
Propriété publiqueUnsafeConnectionNtlmAuthenticationObtient 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

  NomDescription
Méthode publiqueAbortArrête immédiatement l'objet HttpListener, en ignorant toutes les demandes actuellement mises en file d'attente.
Méthode publiqueBeginGetContextCommence à récupérer une demande entrante de façon asynchrone.
Méthode publiqueCloseArrête le HttpListener.
Méthode publiqueEndGetContextMet fin à une opération asynchrone pour récupérer une demande du client entrante.
Méthode publiqueEquals(Object)Détermine si l'objet spécifié est identique à l'objet actuel. (Hérité de Object.)
Méthode publiqueGetContextAttend une demande entrante et retourne les résultats lorsqu'elle est reçue.
Méthode publiqueGetContextAsyncAttend une requête entrante en tant qu'opération asynchrone.
Méthode publiqueGetHashCodeSert de fonction de hachage par défaut. (Hérité de Object.)
Méthode publiqueGetTypeObtient le Type de l'instance actuelle. (Hérité de Object.)
Méthode publiqueStartPermet à cette instance de recevoir des demandes entrantes.
Méthode publiqueStopEntraîne l'arrêt de la réception des demandes entrantes par cette instance.
Méthode publiqueToStringRetourne une chaîne qui représente l'objet actif. (Hérité de Object.)
Début

  NomDescription
Implémentation d'interface expliciteMéthode privéeIDisposable.DisposeInfrastructure. 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.

RemarqueRemarque

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.

RemarqueRemarque

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.

RemarqueRemarque

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.

RemarqueRemarque

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.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0

.NET Framework Client Profile

Pris en charge dans : 4, 3.5 SP1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (rôle principal du serveur non pris en charge), Windows Server 2008 R2 (rôle principal du serveur pris en charge avec SP1 ou version ultérieure ; Itanium non pris en charge)

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.

Ajouts de la communauté

AJOUTER
Afficher:
© 2014 Microsoft