要完成高性能的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();