Cet article a fait l’objet d’une traduction automatique. Pour afficher l’article en anglais, activez la case d’option Anglais. Vous pouvez également afficher le texte anglais dans une fenêtre contextuelle en faisant glisser le pointeur de la souris sur le texte traduit.
Traduction
Anglais

HttpListener classe

 

Date de publication : novembre 2016

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

Espace de noms:   System.Net
Assembly:  System (dans System.dll)

System.Object
  System.Net.HttpListener

public sealed class HttpListener : IDisposable

NomDescription
System_CAPS_pubmethodHttpListener()

Initialise une nouvelle instance de la classe HttpListener.

NomDescription
System_CAPS_pubpropertyAuthenticationSchemes

Obtient ou définit le schéma utilisé pour authentifier les clients.

System_CAPS_pubpropertyAuthenticationSchemeSelectorDelegate

Obtient ou définit le délégué appelé pour déterminer le protocole utilisé pendant l'authentification des clients.

System_CAPS_pubpropertyDefaultServiceNames

Obtient une liste par défaut des noms de fournisseurs de services (SPN) déterminée par les préfixes enregistrés.

System_CAPS_pubpropertyExtendedProtectionPolicy

Obtient ou définit le ExtendedProtectionPolicy à utiliser pour la protection étendue d'une session.

System_CAPS_pubpropertyExtendedProtectionSelectorDelegate

Obtient ou définit le délégué appelé pour déterminer le ExtendedProtectionPolicy à utiliser pour chaque demande.

System_CAPS_pubpropertyIgnoreWriteExceptions

Obtient ou définit une valeur Boolean spécifiant si votre application reçoit des exceptions qui se produisent quand HttpListener envoie la réponse au client.

System_CAPS_pubpropertyIsListening

Obtient une valeur qui indique si HttpListener a été démarré.

System_CAPS_pubpropertySystem_CAPS_staticIsSupported

Obtient une valeur qui indique si HttpListener peut être utilisé avec le système d'exploitation actuel.

System_CAPS_pubpropertyPrefixes

Obtient les préfixes URI (Uniform Resource Identifier) gérés par cet objet HttpListener.

System_CAPS_pubpropertyRealm

Obtient ou définit le domaine, ou partition de ressource, associé à cet objet HttpListener.

System_CAPS_pubpropertyTimeoutManager

Gestionnaire de délai d'attente pour cette instance HttpListener.

System_CAPS_pubpropertyUnsafeConnectionNtlmAuthentication

Obtient ou définit une valeur Boolean qui contrôle si, quand NTLM est utilisé, les demandes supplémentaires utilisant la même connexion TCP (Transmission Control Protocol) doivent être authentifiées.

NomDescription
System_CAPS_pubmethodAbort()

Arrête immédiatement l'objet HttpListener, en ignorant toutes les demandes actuellement mises en file d'attente.

System_CAPS_pubmethodBeginGetContext(AsyncCallback, Object)

Commence à récupérer une demande entrante de façon asynchrone.

System_CAPS_pubmethodClose()

Arrête le HttpListener.

System_CAPS_pubmethodEndGetContext(IAsyncResult)

Met fin à une opération asynchrone pour récupérer une demande du client entrante.

System_CAPS_pubmethodEquals(Object)

Détermine si l'objet spécifié est identique à l'objet actuel.(Hérité de Object.)

System_CAPS_pubmethodGetContext()

Attend une demande entrante et retourne les résultats quand elle est reçue.

System_CAPS_pubmethodGetContextAsync()

Attend une demande entrante en tant qu'opération asynchrone.

System_CAPS_pubmethodGetHashCode()

Fait office de fonction de hachage par défaut.(Hérité de Object.)

System_CAPS_pubmethodGetType()

Obtient le Type de l'instance actuelle.(Hérité de Object.)

System_CAPS_pubmethodStart()

Permet à cette instance de recevoir des demandes entrantes.

System_CAPS_pubmethodStop()

Entraîne l'arrêt de la réception des demandes entrantes par cette instance.

System_CAPS_pubmethodToString()

Retourne une chaîne qui représente l'objet actuel.(Hérité de Object.)

NomDescription
System_CAPS_pubinterfaceSystem_CAPS_privmethodIDisposable.Dispose()

Cette API prend en charge l’infrastructure de produit et n’est pas destinée à être utilisée directement depuis votre code. Libère les ressources détenues par cet objet HttpListener.

Using the T:System.Net.HttpListener class, you can create a simple HTTP protocol listener that responds to HTTP requests. The listener is active for the lifetime of the T:System.Net.HttpListener object and runs within your application with its permissions.

System_CAPS_noteRemarque

This class is available only on computers running the Windows XP SP2 or Windows Server 2003 operating systems. If you attempt to create an T:System.Net.HttpListener object on a computer that is running an earlier operating system, the constructor throws a T:System.PlatformNotSupportedException exception.

To use T:System.Net.HttpListener, create a new instance of the class using the T:System.Net.HttpListener constructor and use the P:System.Net.HttpListener.Prefixes property to gain access to the collection that holds the strings that specify which Uniform Resource Identifier (URI) prefixes the T:System.Net.HttpListener should process.

A URI prefix string is composed of a scheme (http or https), a host, an optional port, and an optional path. An example of a complete prefix string is "http://www.contoso.com:8080/customerData/". Prefixes must end in a forward slash ("/"). The T:System.Net.HttpListener object with the prefix that most closely matches a requested URI responds to the request. Multiple T:System.Net.HttpListener objects cannot add the same prefix; a T:System.ComponentModel.Win32Exception exception is thrown if a T:System.Net.HttpListener adds a prefix that is already in use.

When a port is specified, the host element can be replaced with "*" to indicate that the T:System.Net.HttpListener accepts requests sent to the port if the requested URI does not match any other prefix. For example, to receive all requests sent to port 8080 when the requested URI is not handled by any T:System.Net.HttpListener, the prefix is "http://*:8080/". Similarly, to specify that the T:System.Net.HttpListener accepts all requests sent to a port, replace the host element with the "+" character, "https://+:8080". The "*" and "+" characters can be present in prefixes that include paths.

Starting with .NET 4.5.3 and Windows 10, wildcard subdomains are supported in URI prefixes that are managed by an T:System.Net.HttpListener object. To specify a wildcard subdomain, use the "*" character as part of the hostname in a URI prefix: for example, http://*.foo.com/, and pass this as the argument to the HttpListenerPrefixCollection.Add method. This will work on .NET 4.5.3 and Windows 10; in earlier versions, this would generate an T:System.Net.HttpListenerException

To begin listening for requests from clients, add the URI prefixes to the collection and call the M:System.Net.HttpListener.Start method. T:System.Net.HttpListener offers both synchronous and asynchronous models for processing client requests. Requests and their associated responses are accessed using the T:System.Net.HttpListenerContext object returned by the M:System.Net.HttpListener.GetContext method or its asynchronous counterparts, the M:System.Net.HttpListener.BeginGetContext(System.AsyncCallback,System.Object) and M:System.Net.HttpListener.EndGetContext(System.IAsyncResult) methods.

The synchronous model is appropriate if your application should block while waiting for a client request and if you want to process only one request at a time. Using the synchronous model, call the M:System.Net.HttpListener.GetContext method, which waits for a client to send a request. The method returns an T:System.Net.HttpListenerContext object to you for processing when one occurs.

In the more complex asynchronous model, your application does not block while waiting for requests and each request is processed in its own execution thread. Use the M:System.Net.HttpListener.BeginGetContext(System.AsyncCallback,System.Object) method to specify an application-defined method to be called for each incoming request. Within that method, call the M:System.Net.HttpListener.EndGetContext(System.IAsyncResult) method to obtain the request, process it, and respond.

In either model, incoming requests are accessed using the P:System.Net.HttpListenerContext.Request property and are represented by T:System.Net.HttpListenerRequest objects. Similarly, responses are accessed using the P:System.Net.HttpListenerContext.Response property and are represented by T:System.Net.HttpListenerResponse objects. These objects share some functionality with the T:System.Net.HttpWebRequest and T:System.Net.HttpWebResponse objects, but the latter objects cannot be used in conjunction with T:System.Net.HttpListener because they implement client, not server, behaviors.

An T:System.Net.HttpListener can require client authentication. You can either specify a particular scheme to use for authentication, or you can specify a delegate that determines the scheme to use. You must require some form of authentication to obtain information about the client's identity. For additional information, see the P:System.Net.HttpListenerContext.User, P:System.Net.HttpListener.AuthenticationSchemes, and P:System.Net.HttpListener.AuthenticationSchemeSelectorDelegate properties.

System_CAPS_noteRemarque

If you create an T:System.Net.HttpListener using https, you must select a Server Certificate for that listener. Otherwise, an T:System.Net.HttpWebRequest query of this T:System.Net.HttpListener will fail with an unexpected close of the connection.

System_CAPS_noteRemarque

You can configure Server Certificates and other listener options by using HttpCfg.exe. See http://msdn.microsoft.com/library/default.asp?url=/library/en-us/http/http/httpcfg_exe.asphttp://msdn.microsoft.com/library/default.asp?url=/library/http/http/httpcfg_exe.asp for more details. The executable is shipped with Windows Server 2003, or can be built from source code available in the Platform SDK.

System_CAPS_noteRemarque

If you specify multiple authentication schemes for the T:System.Net.HttpListener, the listener will challenge clients in the following order: Negotiate, NTLM, Digest, and then Basic.

Win2003Server

Is required to use this class.

WinXpFamily

Service Pack 2 or later is required to use this class

The following code example demonstrates using a T:System.Net.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
Disponible depuis 2.0

Tous les membres statiques publics ( Shared en Visual Basic) de ce type sont thread-safe. Les membres d’instance n’ont pas la garantie d’être thread-safe.

Retour au début
Afficher: