Ejemplo n.º 1
0
        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();
        }
Ejemplo n.º 2
0
 public WebInvoker(string root = "")
 {
     PathExtentions.SetRoot(root);
 }