69 lines
2.4 KiB
C#
69 lines
2.4 KiB
C#
using System;
|
|
using System.Diagnostics;
|
|
|
|
namespace VAR.HttpServer.MiniServerTest
|
|
{
|
|
internal class Program
|
|
{
|
|
private static void Main(string[] args)
|
|
{
|
|
HttpServer httpServer = new HttpServer
|
|
{
|
|
Port = 3000,
|
|
Handler = new HelloWorldHttpHandler(),
|
|
LogDegugMessage = (msg) => Console.WriteLine("DEBUG: {0}", msg),
|
|
LogException = (ex) =>
|
|
{
|
|
Console.WriteLine("!!!!! Exception !!!!");
|
|
Console.WriteLine("Message: {0}", ex.Message);
|
|
Console.WriteLine("StackTrace: {0}", ex.StackTrace);
|
|
}
|
|
};
|
|
Console.Title = string.Format("MiniHTTPServer@{0}", httpServer.Port);
|
|
Console.WriteLine("HTTP Server started on {0} port", httpServer.Port);
|
|
httpServer.Start();
|
|
|
|
Process proc = Process.Start(string.Format("http://localhost:{0}", httpServer.Port));
|
|
}
|
|
|
|
public class HelloWorldHttpHandler : IHttpHandler
|
|
{
|
|
public void HandleRequest(HttpProcessor p)
|
|
{
|
|
Console.WriteLine("Responding to {0} requesting: {1}", p.Socket.Client.RemoteEndPoint, p.HttpResource);
|
|
|
|
// Process
|
|
string greetedName = "World";
|
|
if (p.HttpParams.ContainsKey("txtName"))
|
|
{
|
|
greetedName = p.HttpParams["txtName"];
|
|
}
|
|
if (p.HttpParams.ContainsKey("btnReset"))
|
|
{
|
|
greetedName = "World";
|
|
}
|
|
string strGreeting = string.Format("Hello {0}!", greetedName);
|
|
|
|
// Render
|
|
p.ResponseSuccess();
|
|
p.WriteDocument(strGreeting, writeBody: () =>
|
|
{
|
|
p.WriteHeading2(strGreeting);
|
|
p.WriteForm("post", "", () =>
|
|
{
|
|
p.WriteParagraph(null, writeBody: () =>
|
|
{
|
|
p.WriteTextbox("txtName", greetedName);
|
|
});
|
|
p.WriteParagraph(null, writeBody: () =>
|
|
{
|
|
p.WriteButton("btnRefresh", "Refresh");
|
|
p.WriteButton("btnReset", "Reset");
|
|
});
|
|
});
|
|
});
|
|
}
|
|
}
|
|
}
|
|
}
|