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();
}
}
}