public void Invoke(Http2Context http2Context) { var path = http2Context.Request.Path; if (path == "/") { path = "/index.html"; } switch (http2Context.Request.Method) { case "GET": var filePath = PathExtentions.MapPath(path); if (FileHelper.Exists(filePath)) { var responseHeaders1 = new HeaderField[] { new HeaderField { Name = ":status", Value = "200" }, new HeaderField { Name = "date", Value = DateTime.Now.ToGMTString() }, new HeaderField { Name = "server", Value = "SAEA.Http2Server" }, new HeaderField { Name = "content-type", Value = "text/html" }, }; http2Context.Response.SetHeaders(responseHeaders1); http2Context.Response.Write(FileHelper.Read(filePath)); } else { var responseHeaders2 = new HeaderField[] { new HeaderField { Name = ":status", Value = "404" }, new HeaderField { Name = "date", Value = DateTime.Now.ToGMTString() }, new HeaderField { Name = "server", Value = "SAEA.Http2Server" }, new HeaderField { Name = "content-type", Value = "text/html" }, }; http2Context.Response.SetHeaders(responseHeaders2); http2Context.Response.Write("找不到内容!"); } break; case "POST": var responseHeaders3 = new HeaderField[] { new HeaderField { Name = ":status", Value = "204" }, new HeaderField { Name = "date", Value = DateTime.Now.ToGMTString() }, new HeaderField { Name = "server", Value = "SAEA.Http2Server" }, new HeaderField { Name = "content-type", Value = "text/html" }, }; http2Context.Response.SetHeaders(responseHeaders3); http2Context.Response.Write(http2Context.Request.Body); break; default: break; } http2Context.Response.End(); }
public WebInvoker(string root = "") { PathExtentions.SetRoot(root); }