要完成高性能的Web服務功能,通常都是需要用到服務,如:IIS、Apache、Tomcat和Nginx,但是衆所周知的Web伺服器配置的複雜性,如果我們隻是需要一些簡單的功能,安裝這些元件看起來就沒多大必要。我們需要的是一個簡單的HTTP類,可以很容易地嵌入到簡單的Web請求的服務,加到自己的程式裡。
.net
架構下有一個簡單但很強大的類
System.Net.HttpListener
。這個類幾行代碼就能完成一個簡單的伺服器功能。
HttpListener listener = new HttpListener();
listener.Prefixes.Add("http://localhost:8081/");
listener.Start();
Console.WriteLine("Listening...");
Task task = Task.Factory.StartNew(() => {
while(listener.IsListening)
{
HttpListenerContext context = listener.GetContext();
Console.WriteLine("Http requesting...");
HttpListenerRequest request = context.Request;
HttpListenerResponse response = context.Response;
Console.WriteLine("Http responseting...");
string responseString = "<html><title>Http server in C#</title><body><p>Hello world!</p></body></html>";
using (StreamWriter writer = new StreamWriter(response.OutputStream))
{
writer.WriteLine(responseString);
}
}
});
task.Wait();
結果