1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- using System;
- using System.Net.Sockets;
- using System.Text.Json;
- using NetCoreServer;
- namespace Benchmarks
- {
- public class HttpBenchmarkSession : HttpSession
- {
- public HttpBenchmarkSession(HttpServer server) : base(server) { }
- protected override void OnReceivedRequest(HttpRequest request)
- {
- if (request.Url.StartsWith("/plaintext"))
- {
- SendResponseAsync(MakeResponse("Hello, World!", "text/plain; charset=UTF-8"));
- }
- else if (request.Url.StartsWith("/json"))
- {
- var value = new JsonResult() { Message = "Hello, World!" };
- var serialized = JsonSerializer.Serialize(value);
- SendResponseAsync(MakeResponse(serialized, "application/json; charset=UTF-8"));
- }
- else
- {
- SendResponseAsync(Response.MakeErrorResponse("Not found", 404));
- }
- }
- protected override void OnReceivedRequestError(HttpRequest request, string error)
- {
- Console.WriteLine($"Request error: {error}");
- }
- protected override void OnError(SocketError error)
- {
- Console.WriteLine($"HTTP session caught an error: {error}");
- }
- private static HttpResponse MakeResponse(string value, string contentType)
- {
- var response = new HttpResponse(200, "OK", "HTTP/1.1");
- response.SetHeader("Server", "NetCoreServer");
- response.SetHeader("Date", DateTime.UtcNow.ToString("r"));
- response.SetHeader("Content-Type", contentType);
- response.SetBody(value);
- return response;
- }
- }
- }
|