using System; using System.IO; using System.Net; using System.Net.Sockets; using System.Text; using System.Threading; namespace ConsoleApplication22 { class Program { static void Main(string[] args) { string[] prefixed = new string[] { "http://localhost:45678/" }; HttpListener listener = new HttpListener(); foreach (string s in prefixed) { listener.Prefixes.Add(s); } listener.Start(); Console.WriteLine("Start listening."); while (true) { HttpListenerContext context = listener.GetContext(); HttpListenerRequest request = context.Request; Console.WriteLine("{0} {1} HTTP/1.1", request.HttpMethod, request.RawUrl); Console.WriteLine("Accept: {0}", string.Join(",",request.AcceptTypes)); Console.WriteLine("Accept-Language: {0}", string.Join(",", request.UserLanguages)); Console.WriteLine("User-Agent: {0}", request.UserAgent); Console.WriteLine("Accept-Encoding: {0}", request.Headers["Accept-Encoding"]); Console.WriteLine("Connection: {0}", request.KeepAlive ? "Keep-Alive" : "close"); Console.WriteLine("Host: {0}", request.UserHostName); Console.WriteLine("Pragma: {0}", request.Headers["Pragma"]); HttpListenerResponse response = context.Response; string responseString = string.Format("<html><head><title>From HttpListener Server</title></head><body><h1>Hello, world.</h1><p>{0}</p></body></html>",DateTime.Now.ToString()); response.ContentLength64 = Encoding.UTF8.GetByteCount(responseString); response.ContentType = "Content-Type: text/html;charset=UTF-8"; Stream output = response.OutputStream; StreamWriter writer = new StreamWriter(output); writer.Write(responseString); writer.Close(); if(Console.KeyAvailable) break; } listener.Stop(); } } }