static void Main(string[] args) { var messageFile = Path.GetFullPath("messages.txt"); if (!File.Exists(messageFile)) { File.Create(messageFile).Close(); } var messages = new List <string>(); messages.AddRange(File.ReadAllLines(messageFile)); var server = new HttpServer(80); server.AddExactRoute("GET", "/", (request, response) => { response.RedirectLocation = "/web/JSREST.html"; }); server.AddExactRoute("PUT", "/messages", (request, response) => { var text = $"[{request.ClientIP}] {request.ReadBodyText()}"; if (text.Length > 500) { text = "** Messages greater than 500 characters are not allowed. **"; } // prevent clashing of user requests (messages) sent at the same time lock (messageFile) File.AppendAllText(messageFile, text + "\n"); messages.Add(text); }); server.AddExactRoute("GET", "/messages", (request, response) => { response.WriteBodyJson(messages); }); server.AddStaticDirectory("/web", @"C:\Users\Fox\Documents\Visual Studio 2019\Projects\JavaScript\JS REST API C#"); server.Start(); Thread.Sleep(Timeout.Infinite); }
static void Main(string[] args) { var server = new HttpServer(80); server.AddExactRoute("GET", "/hello", (request, response) => { response.WriteBodyText("Hello World"); }); server.AddExactRoute("GET", "/time", (request, response) => { var time = DateTime.Now.ToString(); response.ContentType = "text/html; charset=UTF-8"; response.WriteBodyText( "<html>" + "<head><meta http-equiv=\"refresh\" content=\"1\"></head>" + $"<body><h1>{time}</h1></body>" + "</html>"); }); server.AddExactRoute("GET", "/browser", (request, response) => { var userAgent = request.Headers["user-agent"]; var browser = userAgent.IndexOf("Chrome") >= 0 ? "Chrome" : userAgent.IndexOf("Firefox") >= 0 ? "Firefox" : "Other"; response.ContentType = "text/html; charset=UTF-8"; response.WriteBodyText($"<h1>{browser}</h1>"); }); server.SetDefaultRoute((request, response) => { response.ContentType = "image/png"; response.WriteBodyData(File.ReadAllBytes("hooty.png")); }); server.Start(); Thread.Sleep(Timeout.Infinite); }
static void Main(string[] args) { var server = new HttpServer(80); var db = new RedisDb("10.0.2.7,password=eRHrHGTTf6vDnvKFkqDV3Mg2NLKhbqM41mMmTIoy"); //would be in a root-read-only config file server.AddExactRoute("GET", "/test", (request, response) => { response.WriteBodyText("OK."); }); server.AddExactRoute("GET", "/messages", (request, response) => { var messages = db.ListGet("chatApp", "", "messages"); var outArray = new JArray(); foreach (var message in messages) { outArray.Add(JObject.Parse(message)); } response.WriteBodyJson(outArray); }); server.AddExactRoute("GET", "/message", (request, response) => { var outObj = new JObject(); foreach (var param in request.QueryParams) { outObj[param.Key] = param.Value; } db.ListInsertAfter("chatApp", "", "messages", outObj.ToString()); }); server.AddStaticFile("/", "FrontEnd/index.html"); server.Start(); Thread.Sleep(Timeout.Infinite); }
static void Main() { var form = new Form1(); var server = new HttpServer(80); server.AddExactRoute("GET", "/clock.png", (request, response) => { response.ContentType = "image/png"; if (form.screenshot != null) { response.WriteBodyData(form.screenshot); } }); server.AddStaticFile("/clock.html", "clock.html"); server.Start(); Application.EnableVisualStyles(); Application.Run(form); }