コード例 #1
0
ファイル: Main.cs プロジェクト: baulig/Provcon-Faust
        public MainClass(IPEndPoint endpoint)
        {
            this.EndPoint = endpoint;

            RootUri = string.Format ("http://{0}:{1}/", endpoint.Address, endpoint.Port);
            RedirectUri = RootUri + "Redirect/";
            RedirectContinueUri = RootUri + "Redirect/Continue";

            Server = new Server (EndPoint);
        }
コード例 #2
0
ファイル: Server.cs プロジェクト: baulig/Provcon-Faust
            public Request(Server server)
            {
                Server = server;

                var request = server.Reader.ReadLine ();

                if (request.EndsWith ("HTTP/1.0"))
                    Version = HttpVersion.Version10;
                else if (request.EndsWith ("HTTP/1.1"))
                    Version = HttpVersion.Version11;
                else
                    throw new WebException ("Invalid request: " + request);

                int pos = request.IndexOf (' ');
                Method = request.Substring (0, pos);
                Uri = request.Substring (pos+1, request.Length-pos-10);

                Server.Log ("GOT REQUEST: |{0}|{1}|{2}|", Method, Uri, Version);

                Headers = new Dictionary<string,string> ();
                do {
                    var line = server.Reader.ReadLine ();
                    if (line == null || line == string.Empty)
                        break;

                    pos = line.IndexOf (":");
                    var key = line.Substring (0, pos).Trim ();
                    var value = line.Substring (pos + 1).Trim ();
                    Server.Log ("HEADER: |{0}|{1}|", key, value);
                    Headers [key] = value;
                } while (true);

                Server.Log ("GOT HEADERS: {0}", Headers.ContainsKey ("Content-Length"));
            }
コード例 #3
0
ファイル: Main.cs プロジェクト: baulig/Provcon-Faust
        public void RequestHandler(Server.Request request)
        {
            Server.Response response;

            if (request.Uri.StartsWith ("/Redirect/")) {
                var redirectUri = request.Uri.Substring (9);
                request.Server.Log ("REDIRECT: |{0}|", redirectUri);

                response = request.CreateResponse (HttpStatusCode.TemporaryRedirect);
                response.Headers ["Location"] = redirectUri;
                response.Headers ["Content-Type"] = "text/plain";
                response.Body = "Redirected";

                response.Send ();

                request.ReadBody ();
                return;
            }

            if (request.Uri.Contains ("Continue")) {
                response = request.CreateResponse (HttpStatusCode.Continue);
                response.Send ();
            }

            request.ReadBody ();

            response = request.CreateResponse (HttpStatusCode.OK);
            response.Headers ["Content-Type"] = "text/plain";
            response.Body = "TEST";

            response.Send ();
        }