Files
VAR.HttpServer/VAR.HttpServer.MiniServerTest/Program.cs

69 lines
2.4 KiB
C#

using System;
using System.Diagnostics;
namespace VAR.HttpServer.MiniServerTest
{
public static class Program
{
private static void Main()
{
HttpServer httpServer = new HttpServer
{
Port = 3000,
Handler = new HelloWorldHttpHandler(),
LogDebugMessage = (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 = $"MiniHTTPServer@{httpServer.Port}";
Console.WriteLine("HTTP Server started on {0} port", httpServer.Port);
httpServer.Start();
Process.Start($"http://localhost:{httpServer.Port}");
}
private 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 = $"Hello {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");
});
});
});
}
}
}
}