Bagikan melalui


HttpListenerPrefixCollection.Add(String) Metode

Definisi

Menambahkan awalan Pengidentifikasi Sumber Daya Seragam (URI) ke koleksi.

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)

Parameter

uriPrefix
String

String yang mengidentifikasi informasi URI yang dibandingkan dalam permintaan masuk. Awalan harus dihentikan dengan garis miring ("/").

Penerapan

Pengecualian

uriPrefixadalah null.

uriPrefix tidak menggunakan skema http:// atau https://. Ini adalah satu-satunya skema yang didukung untuk HttpListener objek.

-atau-

uriPrefix bukan awalan URI yang diformat dengan benar. Pastikan string dihentikan dengan "/".

Yang HttpListener terkait dengan koleksi ini ditutup.

Panggilan fungsi Windows gagal. Periksa properti pengecualian ErrorCode untuk menentukan penyebab pengecualian. Pengecualian ini dilemparkan jika yang lain HttpListener telah menambahkan awalan uriPrefix.

Contoh

Contoh kode berikut membuat HttpListener dan menambahkan awalan yang ditentukan pengguna ke 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

Keterangan

Metode ini menambahkan awalan URI ke kumpulan awalan yang dikelola oleh objek terkait HttpListener . Saat memeriksa uriPrefix untuk memastikannya valid, kasus diabaikan.

String awalan URI terdiri dari skema (http atau https), host, port opsional, dan jalur opsional, misalnya, "http://www.contoso.com:8080/customerData/". Awalan harus dihentikan dengan garis miring ("/"). HttpListener dengan awalan yang paling cocok dengan URI yang diminta merespons permintaan. Beberapa HttpListener objek tidak dapat menambahkan awalan yang sama. Pengecualian HttpListenerException dilemparkan jika HttpListener menambahkan awalan yang sudah digunakan.

Ketika port ditentukan, elemen host dapat diganti dengan "*" untuk menunjukkan bahwa HttpListener permintaan terima yang dikirim ke port jika URI yang diminta tidak cocok dengan awalan lainnya. Misalnya, untuk menerima semua permintaan yang dikirim ke port 8080 ketika URI yang diminta tidak ditangani oleh yang lain HttpListener, awalannya adalah "http://*:8080/". Demikian pula, untuk menentukan bahwa menerima semua permintaan yang HttpListener dikirim ke port, ganti elemen host dengan karakter "+", "https://+:8080/". Karakter "*" dan "+" dapat hadir dalam awalan yang menyertakan jalur.

Dimulai dengan .NET 4.5.3 dan Windows 10, subdomain wildcard didukung dalam awalan URI yang dikelola oleh HttpListener objek. Untuk menentukan subdomain kartubebas, gunakan karakter "*" sebagai bagian dari nama host dalam awalan URI: misalnya, http://*.foo.com/, dan teruskan ini sebagai argumen ke metode HttpListenerPrefixCollection.Add. Ini akan berfungsi pada .NET 4.5.3 dan Windows 10; di versi sebelumnya, ini akan menghasilkan HttpListenerException

Berlaku untuk

Lihat juga