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

정의

컬렉션에 URI(Uniform Resource Identifier) 접두사를 추가합니다.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)

매개 변수

uriPrefix
String String String String

들어오는 요청에서 비교되는 URI 정보를 식별하는 String입니다.A String that identifies the URI information that is compared in incoming requests. 이 접두사는 슬래시("/")로 종결되어야 합니다.The prefix must be terminated with a forward slash ("/").

구현

예외

uriPrefix가 http:// 또는 https:// 체계를 사용하지 않는 경우uriPrefix does not use the http:// or https:// scheme. 이것이 HttpListener 개체에 대해 유일하게 지원되는 스키마입니다.These are the only schemes supported for HttpListener objects.

또는-or- uriPrefix가 올바른 형식의 URI 접두사가 아닌 경우.uriPrefix is not a correctly formatted URI prefix. 이 문자열이 "/"로 종료되는지 확인합니다.Make sure the string is terminated with a "/".

이 컬렉션과 연결된 HttpListener는 닫힙니다.The HttpListener associated with this collection is closed.

Windows 함수 호출이 실패한 경우.A Windows function call failed. 예외의 ErrorCode 속성을 검토하여 예외의 원인을 확인할 수 있습니다.Check the exception's ErrorCode property to determine the cause of the exception. 다른 HttpListener에서 uriPrefix 접두사를 이미 추가한 경우 이 예외가 throw됩니다.This exception is thrown if another HttpListener has already added the prefix uriPrefix.

예제

다음 코드 예제는 HttpListener 사용자 지정 접두사를 추가 하 고 해당 HttpListenerPrefixCollection합니다.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

설명

이 메서드는 연결 된 관리 되는 접두사의 집합에 URI 접두사를 추가 HttpListener 개체입니다.This method adds a URI prefix to the set of prefixes managed by the associated HttpListener object. 확인할 때 uriPrefix 유효 하도록 대/소문자 무시 됩니다.When checking uriPrefix to ensure it is valid, case is ignored.

URI 접두사 문자열로 이루어진는 체계 (http 또는 https), 호스트, 선택적 포트를 및 선택적 경로, 예를 들어, "http://www.contoso.com:8080/customerData/"입니다.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/". 이 접두사는 슬래시("/")로 종결되어야 합니다.The prefix must be terminated with a forward slash ("/"). HttpListener 가장 일치 하는 요청된 된 URI 접두사를 사용 하 여 요청에 응답 합니다.The HttpListener with the prefix that most closely matches a requested URI responds to the request. 여러 HttpListener 개체 동일한 접두사를 추가할 수 없습니다.Multiple HttpListener objects cannot add the same prefix. HttpListenerException 예외가 throw 됩니다는 HttpListener 에 이미 있는 접두사를 사용 하 여 추가 합니다.An HttpListenerException exception is thrown if an HttpListener adds a prefix that is already in use.

포트를 지정 하면 호스트 요소 바꿀 수 있습니다 "*" 나타내는 HttpListener 요청된 된 URI에 다른 접두사와 일치 하지 않으면 포트로 전송 요청을 수락 합니다.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. 예를 들어, 모든 요청을 수신 하 여 다른 요청된 된 URI 처리 되지 않은 경우 8080 포트로 전송 HttpListener, 접두사는 "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/". 마찬가지로, 지정 하는 합니다 HttpListener 포트에 전송 하는 모든 요청을 수락 사용 하 여 호스트 요소를 바꿉니다는 "+"문자를 "https://+:8080/".Similarly, to specify that the 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.

4.5.3.NET 및 Windows 10 부터는 와일드 카드 하위 도메인에서 관리 하는 URI 접두사에 지원 됩니다는 HttpListener 개체입니다.Starting with .NET 4.5.3 and Windows 10, wildcard subdomains are supported in URI prefixes that are managed by an HttpListener object. 와일드 카드 하위 도메인을 지정 하려면 URI 접두사*에서 호스트 이름의 일부로 "" 문자를 사용 합니다. 예를 들어, http://*.foo.com/를 HttpListenerPrefixCollection 메서드에 대 한 인수로 전달 합니다.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. 4.5.3.NET 및 Windows 10 에서만 작동 이전 버전에서는 생성은이 HttpListenerExceptionThis will work on .NET 4.5.3 and Windows 10; in earlier versions, this would generate an HttpListenerException

보안

WebPermission
에 네트워크 연결을 허용 합니다.To accept network connections. 연결 된 열거형: AcceptAssociated enumeration: Accept

적용 대상

추가 정보