private void RequestHandler(EventHttpRequest req) { ThreadPool.QueueUserWorkItem(_ => { var pairs = req.Uri.Split(new[] {'?'}, 2); var path = Uri.UnescapeDataString(pairs[0]); var query = pairs.Length == 2 ? pairs[1] : string.Empty; var nreq = new Request(req.Method, path, req.Headers, RequestStream.FromStream(new MemoryStream(req.RequestBody)), "http", query); var ctx = _engine.HandleRequest(nreq); PostProcessNancyResponse(nreq, ctx.Response); var ms = new MemoryStream(); ctx.Response.Contents(ms); req.Respond((System.Net.HttpStatusCode) ctx.Response.StatusCode, ctx.Response.Headers, ms.ToArray()); }); }
private void RequestHandler(IntPtr request, IntPtr arg) { var req = new EventHttpRequest (this, request); _cb (req); }