C# .NET 搭建简易 Http server

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

结果

http server