Exemple #1
0
        public void Execute()
        {
            Socket = AppHost.Context.CreateSocket ();
            Socket.Connect (RemoteAddress, RemotePort, delegate {
                Stream = new HttpStream (this, Socket.GetSocketStream ());
                Stream.Chunked = false;
                Stream.AddHeaders = false;

                byte [] body = GetBody ();

                if (body != null) {
                    Headers.ContentLength = body.Length;
                    Stream.Write (body, 0, body.Length);
                }

                Stream.End (() => {
                    HttpResponse response = new HttpResponse (Context, this, Socket);

            //					response.OnCompleted += () => {
            //						if (OnResponse != null)
            //							OnResponse (response);
            //					};

                    response.Read (() => {
                        if (OnResponse != null) OnResponse (response);
                    });
                });
            });
        }
Exemple #2
0
        public void OnRequestReady()
        {
            try {
                Response = new HttpResponse (Request, Stream);

                Server.RunTransaction (this);
            } catch (Exception e) {
                Console.WriteLine ("Exception while running transaction");
                Console.WriteLine (e);
            }
        }
Exemple #3
0
        public void Execute()
        {
            Socket = new SocketStream (AppHost.IOLoop);
            Socket.Connect (RemoteAddress, RemotePort);

            Socket.Connected += delegate {
                Stream = new HttpStream (this, Socket);

                Stream.WriteMetadata (() => {
                    HttpResponse response = new HttpResponse (Socket);

                    if (Connected != null)
                        Connected (response);
                });
            };
        }
Exemple #4
0
        public void Execute()
        {
            var remote = new IPEndPoint(IPAddress.Parse (RemoteAddress), RemotePort);
            Socket = this.Context.CreateTcpSocket (remote.AddressFamily);
            Socket.Connect (remote, delegate {
                Stream = new HttpStream (this, Socket.GetSocketStream ());
                Stream.Chunked = false;
                Stream.AddHeaders = false;

                byte [] body = GetBody ();

                if (body != null) {
                    Headers.ContentLength = body.Length;
                    Stream.Write (body, 0, body.Length);
                }

                Stream.End (() => {
                    HttpResponse response = new HttpResponse (Context, this, Socket);

            //					response.OnCompleted += () => {
            //						if (OnResponse != null)
            //							OnResponse (response);
            //					};

                    response.Read (() => {
                        if (OnResponse != null) OnResponse (response);
                    });
                });
            }, ex => {
                // TODO: figure out what to do here
            });
        }
Exemple #5
0
        private void OnFinishedReading()
        {
            if (body_handler != null)
                body_handler.Finish (this);

            try {
                IOStream.DisableReading ();
                Response = new HttpResponse (this);

                Server.RunTransaction (this);
            } catch (Exception e) {
                Console.WriteLine ("Exception while running transaction");
                Console.WriteLine (e);
            }
        }
Exemple #6
0
 public void OnRequestReady()
 {
     try {
         Response = new HttpResponse (Request, Stream);
         ResponseReady = true;
         if( closeOnEnd ) Response.OnEnd += () => Response.Complete( OnResponseFinished );
         Server.RunTransaction (this);
     } catch (Exception e) {
         Console.WriteLine ("Exception while running transaction");
         Console.WriteLine (e);
     }
 }
Exemple #7
0
 public HttpResponseStream(HttpResponse response, IOStream stream)
 {
     Response = response;
     IOStream = stream;
 }