public void HandleClient(TcpClient tcpClient) { Stream inputStream = tcpClient.GetStream(); Stream outputStream = tcpClient.GetStream(); HttpRequest request = ReadRequest(inputStream); HttpResponse response = ResponseDefaultBuilder.Ok(); try { _app.Process(ref request, ref response); } catch (Exception ex) { Console.WriteLine(ex); response = ResponseDefaultBuilder.InternalServerError(); } try { WriteResponse(outputStream, response); } catch { } outputStream.Flush(); outputStream.Close(); outputStream = null; inputStream.Close(); inputStream = null; }
public void Process(ref HttpRequest req, ref HttpResponse res) { if (RequestsResource(req)) { IResource resource = _resolver.Resolve(req.Url.ToString()); resource.Process(req, res); } else { Controller controller = GetController(_router.RouteRequest(req.Url.ToString())); if (controller != null) { try { switch (req.Method) { case "GET": controller.DoGet(req, res); break; case "POST": controller.DoPost(req, res); break; case "DELETE": controller.DoDelete(req, res); break; case "PUT": controller.DoPut(req, res); break; } } catch { res = ResponseDefaultBuilder.InternalServerError(); } } else { res = ResponseDefaultBuilder.NotFound(); } } }