HttpListenerPrefixCollection.Add(String) Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Koleksiyona Tekdüzen Kaynak Tanımlayıcısı (URI) ön eki ekler.
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)
Parametreler
- uriPrefix
- String
String Gelen isteklerde karşılaştırılan URI bilgilerini tanımlayan. Ön ek, eğik çizgi ("/") ile sonlandırılmalıdır.
Uygulamalar
Özel durumlar
uriPrefix
, null
değeridir.
uriPrefix
http:// veya https:// düzenini kullanmaz. Nesneler için HttpListener desteklenen tek şemalar bunlardır.
-veya-
uriPrefix
doğru biçimlendirilmiş bir URI ön eki değildir. Dizenin "/" ile sonlandırıldığına emin olun.
HttpListener Bu koleksiyonla ilişkilendirilmiş olan kapatılır.
Windows işlev çağrısı başarısız oldu. Özel durumun nedenini belirlemek için özel durumun ErrorCode özelliğini denetleyin. Bu özel durum, başka biri HttpListener ön ekini uriPrefix
eklemişse oluşturulur.
Örnekler
Aşağıdaki kod örneği bir HttpListener oluşturur ve kullanıcı tarafından belirtilen ön ekleri öğesine HttpListenerPrefixCollectionekler.
// 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
Açıklamalar
Bu yöntem, ilişkili HttpListener nesne tarafından yönetilen ön ek kümesine bir URI ön eki ekler. Geçerli olup olmadığını denetlerken uriPrefix
büyük/küçük harf yoksayılır.
URI ön ek dizesi bir düzen (http veya https), bir konak, isteğe bağlı bir bağlantı noktası ve isteğe bağlı bir yoldan (örneğin, "http://www.contoso.com:8080/customerData/
") oluşur. Ön ek, eğik çizgi ("/") ile sonlandırılmalıdır.
HttpListener İstenen bir URI ile en yakından eşleşen ön eke sahip olan istek yanıt verir. Birden çok HttpListener nesne aynı ön eki ekleyemez. Zaten HttpListenerException kullanımda olan bir ön ek eklerse bir HttpListener özel durum oluşturulur.
Bir bağlantı noktası belirtildiğinde, istenen URI'nin başka bir ön ekle eşleşmemesi durumunda bağlantı noktasına gönderilen istekleri kabul ettiğini HttpListener belirtmek için konak öğesi "*
" ile değiştirilebilir. Örneğin, istenen URI başka HttpListenerherhangi bir tarafından işlenmediğinde 8080 numaralı bağlantı noktasına gönderilen tüm istekleri almak için ön ek "http://*:8080/
" olur. Benzer şekilde, öğesinin bir bağlantı noktasına gönderilen tüm istekleri kabul ettiğini HttpListener belirtmek için konak öğesini "+
" karakteriylehttps://+:8080/
değiştirin. "*
" ve "+
" karakterleri, yolları içeren ön eklerde bulunabilir.
.NET 4.5.3 ve Windows 10'dan başlayarak, joker karakter alt etki alanları bir HttpListener nesne tarafından yönetilen URI ön eklerinde desteklenir. Joker karakter alt etki alanı belirtmek için, URI ön ekinde konak adının bir parçası olarak "*" karakterini kullanın: örneğin, http://*.foo.com/
ve bunu HttpListenerPrefixCollection.Add yöntemine bağımsız değişken olarak geçirin. Bu, .NET 4.5.3 ve Windows 10'da çalışır; önceki sürümlerde, bu bir HttpListenerException