HTTP listener

Will produce HttpRequest unless you change the BodyDecoder property, which will make the listener produce HttpRequest instead.

Inheritance: ChannelTcpListener
Esempio n. 1
0
        static void Main(string[] args)
        {
            var certificate = new X509Certificate2("GriffinNetworkingTemp.pfx", "mamma");

            var config = new LiteServerConfiguration();
            config.Modules.AddAuthentication(new HashAuthenticationModule(new FakeFetcher()));
            config.Modules.AddAuthorization(new MustAlwaysAuthenticate());
            var server = new LiteServer(config);
            server.Start(IPAddress.Loopback, 0);

            var client = new CqsClient(() => new DataContractMessageSerializer());
            client.Authenticator = new HashClientAuthenticator(new NetworkCredential("jonas", "mamma"));
            client.StartAsync(IPAddress.Loopback, server.LocalPort).Wait();
            client.ExecuteAsync(new HelloWorld()).Wait();


            var listener = new HttpListener();
            listener.ChannelFactory = new SecureTcpChannelFactory(new ServerSideSslStreamBuilder(certificate));
            listener.ClientConnected += OnConnect;
            listener.MessageReceived = OnMessage;
            listener.BodyDecoder = new CompositeIMessageSerializer();
            listener.Start(IPAddress.Any, 8083);

            
            Console.ReadLine();
        }
Esempio n. 2
0
        public void work_with_custom_header()
        {
            var sut = new HttpListener();

            sut.Start(IPAddress.Loopback, 0);
            var request = WebRequest.CreateHttp("http://localhost:" + sut.LocalPort);

            request.ServerCertificateValidationCallback += (sender, certificate, chain, errors) => { return(true); };
            request.Headers.Add("SOAPAction", "urn:BVTAFService:PostMessages");
            request.ContentType = "text/xml; charset=utf-8";
            request.Method      = "POST";
            var formattedMessage = string.Format(Wrapper, "<fake><soap /></fake>");
            var buf = Encoding.UTF8.GetBytes(formattedMessage);

            request.GetRequestStream().Write(buf, 0, buf.Length);

            HttpRequestBase msg;

            sut.MessageReceived += (channel, message) =>
            {
                msg = (HttpRequestBase)message;
                channel.Send(msg.CreateResponse());
            };
            var response = request.GetResponse();
        }
Esempio n. 3
0
        static void Main(string[] args)
        {
            var certificate = new X509Certificate2("GriffinNetworkingTemp.pfx", "mamma");

            var config = new LiteServerConfiguration();

            config.Modules.AddAuthentication(new HashAuthenticationModule(new FakeFetcher()));
            config.Modules.AddAuthorization(new MustAlwaysAuthenticate());
            var server = new LiteServer(config);

            server.Start(IPAddress.Loopback, 0);

            var client = new CqsClient(() => new DataContractMessageSerializer());

            client.Authenticator = new HashClientAuthenticator(new NetworkCredential("jonas", "mamma"));
            client.StartAsync(IPAddress.Loopback, server.LocalPort).Wait();
            client.ExecuteAsync(new HelloWorld()).Wait();


            var listener = new HttpListener();

            listener.ChannelFactory   = new SecureTcpChannelFactory(new ServerSideSslStreamBuilder(certificate));
            listener.ClientConnected += OnConnect;
            listener.MessageReceived  = OnMessage;
            listener.BodyDecoder      = new CompositeIMessageSerializer();
            listener.Start(IPAddress.Any, 8083);


            Console.ReadLine();
        }
Esempio n. 4
0
        static void Main(string[] args)
        {
            JsonConvert.DefaultSettings = (() =>
            {
                var settings = new JsonSerializerSettings();
                settings.Converters.Add(new StringEnumConverter());
                return(settings);
            });

            AddUser(new UserData("root", "root", false));

            HttpListener httpServer = new HttpListener(new ChannelTcpListenerConfiguration(
                                                           () => new HttpMessageDecoder(),
                                                           () => new HttpMessageEncoder()
                                                           ));

            httpServer.ClientConnected += httpServer_ClientConnected;
            httpServer.MessageReceived  = OnMessage;
            httpServer.Start(IPAddress.Any, 38012);

            //CLI MENU
            while (true)
            {
                Console.Out.WriteLine("========================================");
                Console.Out.WriteLine("Menu:");
                Console.Out.WriteLine("1) List users");
                Console.Out.WriteLine("2) Add/Edit user");
                Console.Out.WriteLine("3) Delete user");
                Console.Out.WriteLine("9) Exit program");
                Console.Out.Write("Choice: ");
                string picked = Console.In.ReadLine();
                Console.Out.WriteLine("----------------------------------------");
                switch (picked)
                {
                case "1":
                    foreach (UserData userData in validUsers.Values)
                    {
                        Console.Out.WriteLine("Name: " + userData.name + ", ReadOnly: " + (userData.readOnly ? "Yes" : "No"));
                    }
                    break;

                case "2":
                    UserData user = ConsoleReadUser();
                    validUsers[user.name] = user;
                    break;

                case "3":
                    Console.Out.Write("Username: "******"9":
                    httpServer.Stop();
                    return;
                }
            }
        }
Esempio n. 5
0
        static void Main(string[] args)
        {
            JsonConvert.DefaultSettings = (() =>
            {
                var settings = new JsonSerializerSettings();
                settings.Converters.Add(new StringEnumConverter());
                return settings;
            });

            AddUser(new UserData("root", "root", false));

            HttpListener httpServer = new HttpListener(new ChannelTcpListenerConfiguration(
                () => new HttpMessageDecoder(),
                () => new HttpMessageEncoder()
            ));
            httpServer.ClientConnected += httpServer_ClientConnected;
            httpServer.MessageReceived = OnMessage;
            httpServer.Start(IPAddress.Any, 38012);

            //CLI MENU
            while (true)
            {
                Console.Out.WriteLine("========================================");
                Console.Out.WriteLine("Menu:");
                Console.Out.WriteLine("1) List users");
                Console.Out.WriteLine("2) Add/Edit user");
                Console.Out.WriteLine("3) Delete user");
                Console.Out.WriteLine("9) Exit program");
                Console.Out.Write("Choice: ");
                string picked = Console.In.ReadLine();
                Console.Out.WriteLine("----------------------------------------");
                switch(picked)
                {
                    case "1":
                        foreach(UserData userData in validUsers.Values)
                            Console.Out.WriteLine("Name: " + userData.name + ", ReadOnly: " + (userData.readOnly ? "Yes" : "No"));
                        break;
                    case "2":
                        UserData user = ConsoleReadUser();
                        validUsers[user.name] = user;
                        break;
                    case "3":
                        Console.Out.Write("Username: "******"9":
                        httpServer.Stop();
                        return;
                }
            }
        }
Esempio n. 6
0
        static void Main(string[] args)
        {
            var certificate = new X509Certificate2("GriffinNetworkingTemp.pfx", "mamma");
            var listener = new HttpListener();
            listener.ChannelFactory = new SecureTcpChannelFactory(new ServerSideSslStreamBuilder(certificate));
            listener.ClientConnected += OnConnect;
            listener.MessageReceived = OnMessage;
            listener.BodyDecoder = new CompositeBodyDecoder();
            listener.Start(IPAddress.Any, 8083);

            
            Console.ReadLine();
        }
Esempio n. 7
0
        static void Main(string[] args)
        {
            var certificate = new X509Certificate2("GriffinNetworkingTemp.pfx", "mamma");
            var listener    = new HttpListener();

            listener.ChannelFactory   = new SecureTcpChannelFactory(new ServerSideSslStreamBuilder(certificate));
            listener.ClientConnected += OnConnect;
            listener.MessageReceived  = OnMessage;
            listener.BodyDecoder      = new CompositeBodyDecoder();
            listener.Start(IPAddress.Any, 8083);


            Console.ReadLine();
        }
Esempio n. 8
0
        /// <summary>
        /// Start the HTTP server
        /// </summary>
        /// <param name="ipAddress">Address to listen on</param>
        /// <param name="port">Port to listen on.</param>
        /// <exception cref="System.ArgumentNullException">ipAddress</exception>
        /// <exception cref="System.InvalidOperationException">Stop the server before restarting.</exception>
        public void Start(IPAddress ipAddress, int port)
        {
            if (ipAddress == null)
            {
                throw new ArgumentNullException("ipAddress");
            }
            if (_listener != null)
            {
                throw new InvalidOperationException("Stop the server before restarting.");
            }


            _listener                 = new HttpListener(_configuration);
            _listener.BodyDecoder     = BodyDecoder;
            _listener.MessageReceived = OnClientRequest;
            _listener.Start(ipAddress, port);
        }
Esempio n. 9
0
        /// <summary>
        ///     Start the HTTP server
        /// </summary>
        /// <param name="ipAddress">Address to listen on</param>
        /// <param name="port">Port to listen on.</param>
        /// <example>
        /// <p>You can load a certificate by doing the following:</p>
        /// <code>
        /// var certificate = new X509Certificate2(@"C:\certificates\yourCertificate", "yourpassword");
        /// var server = new HttpServer(new ModuleManager());
        /// server.Start(IPAddress.Any, 80, certifiate);
        /// </code>
        /// </example>
        public void Start(IPAddress ipAddress, int port, X509Certificate certifiate)
        {
            if (ipAddress == null)
            {
                throw new ArgumentNullException("ipAddress");
            }
            if (_listener != null)
            {
                throw new InvalidOperationException("Stop the server before restarting.");
            }

            var factory = new SecureTcpChannelFactory(new ServerSideSslStreamBuilder(certifiate));

            _listener = new HttpListener();
            _listener.ChannelFactory  = factory;
            _listener.MessageReceived = OnClientRequest;
            _listener.Start(ipAddress, port);
        }
        public void work_with_custom_header()
        {
            var sut = new HttpListener();
            sut.Start(IPAddress.Loopback, 0);
            var request = WebRequest.CreateHttp("http://localhost:" + sut.LocalPort);
            request.ServerCertificateValidationCallback += (sender, certificate, chain, errors) => { return true; };
            request.Headers.Add("SOAPAction", "urn:BVTAFService:PostMessages");
            request.ContentType = "text/xml; charset=utf-8";
            request.Method = "POST";
            var formattedMessage = string.Format(Wrapper, "<fake><soap /></fake>");
            var buf = Encoding.UTF8.GetBytes(formattedMessage);
            request.GetRequestStream().Write(buf, 0, buf.Length);

            HttpRequestBase msg;
            sut.MessageReceived += (channel, message) =>
            {
                msg = (HttpRequestBase) message;
                channel.Send(msg.CreateResponse());
            };
            var response = request.GetResponse();


        }
Esempio n. 11
0
 /// <summary>
 ///     Stop the server.
 /// </summary>
 public void Stop()
 {
     _listener.Stop();
     _listener = null;
 }
Esempio n. 12
0
 /// <summary>
 ///     Stop the server.
 /// </summary>
 public void Stop()
 {
     _listener.Stop();
     _listener = null;
 }
Esempio n. 13
0
        /// <summary>
        ///     Start the HTTP server
        /// </summary>
        /// <param name="ipAddress">Address to listen on</param>
        /// <param name="port">Port to listen on.</param>
        /// <example>
        /// <p>You can load a certificate by doing the following:</p>
        /// <code>
        /// var certificate = new X509Certificate2(@"C:\certificates\yourCertificate", "yourpassword");
        /// var server = new HttpServer(new ModuleManager());
        /// server.Start(IPAddress.Any, 80, certifiate);
        /// </code>
        /// </example>
        public void Start(IPAddress ipAddress, int port, X509Certificate certifiate)
        {
            if (ipAddress == null) throw new ArgumentNullException("ipAddress");
            if (_listener != null)
                throw new InvalidOperationException("Stop the server before restarting.");

            var factory=new SecureTcpChannelFactory(new ServerSideSslStreamBuilder(certifiate));
            _listener = new HttpListener();
            _listener.ChannelFactory = factory;
            _listener.MessageReceived = OnClientRequest;
            _listener.Start(ipAddress, port);
        }
Esempio n. 14
0
        /// <summary>
        /// Start the HTTP server
        /// </summary>
        /// <param name="ipAddress">Address to listen on</param>
        /// <param name="port">Port to listen on.</param>
        /// <exception cref="System.ArgumentNullException">ipAddress</exception>
        /// <exception cref="System.InvalidOperationException">Stop the server before restarting.</exception>
        public void Start(IPAddress ipAddress, int port)
        {
            if (ipAddress == null) throw new ArgumentNullException("ipAddress");
            if (_listener != null)
                throw new InvalidOperationException("Stop the server before restarting.");

            
            _listener = new HttpListener(_configuration);
            _listener.BodyDecoder = BodyDecoder;
            _listener.MessageReceived = OnClientRequest;
            _listener.Start(ipAddress, port);
        }
 public UploadToCoderrTests()
 {
     _listener = new HttpListener();
     _listener.Start(IPAddress.Any, 0);
     _listener.MessageReceived += OnMessage;
 }