void HandleRequest(Request request, Response response) { Log.E(request.RequestURI.Value); FeintSDK.Response res = null; FeintSDK.Request req = new FeintSDK.Request(request.RequestURI.Value); req.Method = request.RequestMethod.Value; req.Session = new FeintSDK.Session(); string text = null; text = System.Text.Encoding.UTF8.GetString(request.Stdin.GetContents()); ParseContent(request, req, text); if (req.Url.StartsWith("/" + FeintSDK.Settings.StaticFolder)) { res = GetStatic(response, res, req); } else { FeintSDK.RequestMethod actualMethod = FeintSDK.RequestMethod.POST; switch (request.RequestMethod.Value) { case "GET": actualMethod = FeintSDK.RequestMethod.GET; break; case "POST": actualMethod = FeintSDK.RequestMethod.POST; break; case "PUT": actualMethod = FeintSDK.RequestMethod.PUT; break; case "DELETE": actualMethod = FeintSDK.RequestMethod.DELETE; break; } if (!req.Url.EndsWith("/")) req.Url += "/"; FeintSDK.Url urlApp = UrlDispatcher(req, actualMethod); if (urlApp != null) { setSesion(request, response, req); res = RunApplication(response, res, req, urlApp); var redirect = res.GetType().GetField("redirectUrl", BindingFlags.NonPublic | BindingFlags.Instance); String url = (String)redirect.GetValue(res); if (url != null) { response.SeeOtherRedirect(url); return; } } } if (res != null) { response.ResponseStatus =res.Status; response.Put(res.Data); } else { response.ResponseStatus = 404; response.PutStr("<HTML><BODY>404!!!</BODY></HTML>"); } }