HttpListenerPrefixCollection.Add(String) HttpListenerPrefixCollection.Add(String) HttpListenerPrefixCollection.Add(String) HttpListenerPrefixCollection.Add(String) Method

Definición

Agrega un prefijo del identificador uniforme de recursos (URI) a la colección.Adds a Uniform Resource Identifier (URI) prefix to the collection.

public:
 virtual void Add(System::String ^ uriPrefix);
public void Add (string uriPrefix);
abstract member Add : string -> unit
override this.Add : string -> unit
Public Sub Add (uriPrefix As String)

Parámetros

uriPrefix
String String String String

String que identifica la información de URI que se compara en las solicitudes entrantes.A String that identifies the URI information that is compared in incoming requests. El prefijo debe terminar con una barra diagonal ("/").The prefix must be terminated with a forward slash ("/").

Implementaciones

Excepciones

uriPrefix no utiliza el esquema http:// o https://.uriPrefix does not use the http:// or https:// scheme. Estos son los únicos esquemas admitidos en los objetos HttpListener.These are the only schemes supported for HttpListener objects.

o bien-or- uriPrefix no es un prefijo URI con formato correcto.uriPrefix is not a correctly formatted URI prefix. Asegúrese de que la cadena finaliza con un "/".Make sure the string is terminated with a "/".

La clase HttpListener asociada a esta colección está cerrada.The HttpListener associated with this collection is closed.

Error al llamar a una función de Windows.A Windows function call failed. Examine la propiedad ErrorCode de la excepción para determinar su causa.Check the exception's ErrorCode property to determine the cause of the exception. Se produce esta excepción si otro objeto HttpListener ya ha agregado el prefijo uriPrefix.This exception is thrown if another HttpListener has already added the prefix uriPrefix.

Ejemplos

En el ejemplo de código siguiente HttpListener se crea un y se agregan prefijos especificados por el HttpListenerPrefixCollectionusuario a.The following code example creates an HttpListener and adds user-specified prefixes to its HttpListenerPrefixCollection.

// 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();
}
Public Shared Sub SimpleListenerExample(prefixes As String())
    If Not HttpListener.IsSupported Then
        Console.WriteLine("Windows XP SP2 or Server 2003 is required to use the HttpListener class.")
        Return
    End If
    ' URI prefixes are required,
    ' for example "http://contoso.com:8080/index/".
    If prefixes Is Nothing Or prefixes.Length = 0 Then
        Throw New ArgumentException("prefixes")
    End If

    ' Create a listener
    Dim listener = New HttpListener()

    For Each s As String In prefixes
        listener.Prefixes.Add(s)
    Next
    listener.Start()
    Console.WriteLine("Listening...")
    ' Note: The GetContext method blocks while waiting for a request.
    Dim context As HttpListenerContext = listener.GetContext()
    Console.WriteLine("Listening...")
    ' Obtain a response object
    Dim request As HttpListenerRequest = context.Request
    ' Construct a response.
    Dim response As HttpListenerResponse = context.Response
    Dim responseString As String = "<HTML><BODY> Hello world!</BODY></HTML>"
    Dim buffer As Byte() = System.Text.Encoding.UTF8.GetBytes(responseString)
    ' Get a response stream and write the response to it.
    response.ContentLength64 = buffer.Length
    Dim output As System.IO.Stream = response.OutputStream
    output.Write(buffer, 0, buffer.Length)
    'You must close the output stream.
    output.Close()
    listener.Stop()
End Sub

Comentarios

Este método agrega un prefijo de URI al conjunto de prefijos administrados HttpListener por el objeto asociado.This method adds a URI prefix to the set of prefixes managed by the associated HttpListener object. Cuando se uriPrefix comprueba para asegurarse de que es válido, se omite el uso de mayúsculas y minúsculas.When checking uriPrefix to ensure it is valid, case is ignored.

Una cadena de prefijo URI se compone de un esquema (http o https), un host, un puerto opcional y una ruta de acceso opcional, porhttp://www.contoso.com:8080/customerData/ejemplo, "".A URI prefix string is composed of a scheme (http or https), a host, an optional port, and an optional path, for example, "http://www.contoso.com:8080/customerData/". El prefijo debe terminar con una barra diagonal ("/").The prefix must be terminated with a forward slash ("/"). El HttpListener con el prefijo que más se aproxime a un URI solicitado responde a la solicitud.The HttpListener with the prefix that most closely matches a requested URI responds to the request. Varios HttpListener objetos no pueden agregar el mismo prefijo.Multiple HttpListener objects cannot add the same prefix. Se HttpListenerException produce una excepción si un HttpListener agrega un prefijo que ya está en uso.An HttpListenerException exception is thrown if an HttpListener adds a prefix that is already in use.

Cuando se especifica un puerto, el elemento host se puede reemplazar por "*" para indicar HttpListener que acepta solicitudes enviadas al puerto si el URI solicitado no coincide con ningún otro prefijo.When a port is specified, the host element can be replaced with "*" to indicate that the HttpListener accepts requests sent to the port if the requested URI does not match any other prefix. Por ejemplo, para recibir todas las solicitudes enviadas al puerto 8080 cuando el URI solicitado no está controlado por HttpListenerningún otro, el prefijo es "http://*:8080/".For example, to receive all requests sent to port 8080 when the requested URI is not handled by any other HttpListener, the prefix is "http://*:8080/". Del mismo modo, para especificar HttpListener que acepta todas las solicitudes enviadas a un puerto, reemplace el elemento host+por el carácter "https://+:8080/", "".Similarly, to specify that the HttpListener accepts all requests sent to a port, replace the host element with the "+" character, "https://+:8080/". Los caracteres*"" y+"" pueden estar presentes en prefijos que incluyen rutas de acceso.The "*" and "+" characters can be present in prefixes that include paths.

A partir de .net 4.5.3 y Windows 10, los subdominios comodín se admiten en los prefijos URI HttpListener administrados por un objeto.Starting with .NET 4.5.3 and Windows 10, wildcard subdomains are supported in URI prefixes that are managed by an HttpListener object. Para especificar un subdominio comodín, use el carácter*"" como parte del nombre de host en un prefijo de URI: http://*.foo.com/por ejemplo,, y páselo como argumento al método HttpListenerPrefixCollection. Add.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. Esto funcionará en .NET 4.5.3 y Windows 10; en versiones anteriores, esto generaba unHttpListenerExceptionThis will work on .NET 4.5.3 and Windows 10; in earlier versions, this would generate an HttpListenerException

Seguridad

WebPermission
Para aceptar conexiones de red.To accept network connections. Enumeración asociada:AcceptAssociated enumeration: Accept

Se aplica a

Consulte también: