Ejemplo n.º 1
0
        static void Main(string[] args)
        {
            HttpSelfHostServer server = null;
            try
            {
                // 设置selfhost
                HttpSelfHostConfiguration config = new HttpSelfHostConfiguration(_baseAddress);

                //配置(config);
                //清除xml格式,设置Json格式
                config.Formatters.XmlFormatter.SupportedMediaTypes.Clear();
                config.Formatters.JsonFormatter.SerializerSettings.Formatting = Newtonsoft.Json.Formatting.Indented;
                //设置路由
                config.Routes.MapHttpRoute(
                    name: "DefaultApi",
                    routeTemplate: "api/{controller}/{id}",
                    defaults: new { id = RouteParameter.Optional }
                );
                // 创建服务
                server = new HttpSelfHostServer(config);

                // 开始监听
                server.OpenAsync().Wait();
                Console.WriteLine("Listening on " + _baseAddress);
                Console.WriteLine("Web API host started...");
                //输入exit按Enter結束httpServer
                string line = null;
                do
                {
                    line = Console.ReadLine();
                }
                while (line != "exit");
                //结束连接
                server.CloseAsync().Wait();
            }
            catch (Exception e)
            {
                Console.WriteLine("Could not start server: {0}", e.GetBaseException().Message);
                Console.WriteLine("Hit ENTER to exit...");
                Console.ReadLine();
            }
            finally
            {
                if (server != null)
                {
                    // Stop listening
                    server.CloseAsync().Wait();
                }
            }
        }
Ejemplo n.º 2
0
        static void Main(string[] args)
        {
            var baseurl = new Uri("http://localhost:9000/");
            var config = new HttpSelfHostConfiguration(baseurl);

            //config.MessageHandlers.Add(new GitHubApiRouter(baseurl));

            //config.Routes.Add("default", new TreeRoute("",new TreeRoute("home").To<HomeController>(),
            //                                              new TreeRoute("contact",
            //                                                        new TreeRoute("{id}",
            //                                                            new TreeRoute("address",
            //                                                                 new TreeRoute("{addressid}").To<ContactAddressController>())
            //                                                        ).To<ContactController>())
            //                                              )
            //                  );

            var route = new TreeRoute("api");
            route.AddWithPath("home", r => r.To<HomeController>());
            route.AddWithPath("contact/{id}",r => r.To<ContactController>());
            route.AddWithPath("contact/{id}/adddress/{addressid}", r => r.To<ContactAddressController>());
            route.AddWithPath("act/A", r => r.To<ActionController>().ToAction("A"));
            route.AddWithPath("act/B", r => r.To<ActionController>().ToAction("B"));

            config.Routes.Add("default", route);

            var host = new HttpSelfHostServer(config);
            host.OpenAsync().Wait();

            Console.WriteLine("Host open.  Hit enter to exit...");

            Console.Read();

            host.CloseAsync().Wait();
        }
Ejemplo n.º 3
0
        static void Main(string[] args)
        {
            var port = ConfigurationManager.AppSettings["Port"] ?? "8080";
            var hostname = ConfigurationManager.AppSettings["Hostname"] ?? "localhost";

            //The url that the service can be called on
            var serviceUrl = string.Format("http://{0}:{1}", hostname, port);

            //Service configuration
            var config = new HttpSelfHostConfiguration(serviceUrl);

            //Add routes to controllers
            config.Routes.MapHttpRoute("DefaultApi ", "api/{controller}/{id}", new { id = RouteParameter.Optional });

            //Writes list of available mediatype formatters to console
            Console.WriteLine("{0}{1}", "Registered media type formatters:\n", string.Join("\n", config.Formatters.Select(x => x.GetType())));

            //Initialize server
            _selfHostServerServer = new HttpSelfHostServer(config);

            //Start server
            _selfHostServerServer.OpenAsync().Wait();
            Console.WriteLine("{1}Self hosting server is running on: {0}", serviceUrl, Environment.NewLine);
            Console.WriteLine("Press Enter to quit.");
            Console.ReadLine();

            //Wires up application close handler
            AppDomain.CurrentDomain.ProcessExit += (s, e) =>
                                                       {
                                                           //Close server
                                                           _selfHostServerServer.CloseAsync();
                                                           _selfHostServerServer.Dispose();
                                                       };
        }
Ejemplo n.º 4
0
 static void Main(string[] args)
 {
     HttpSelfHostServer server = null;
     try {
         // Set up server configuration
         HttpSelfHostConfiguration config = new HttpSelfHostConfiguration(BaseAddress);
         config.Routes.MapHttpRoute(
             name: "DefaultApi",
             routeTemplate: "api/{controller}/{id}",
             defaults: new { id = RouteParameter.Optional }
         );
         // Create server
         server = new HttpSelfHostServer(config);
         // Start listening
         server.OpenAsync().Wait();
         Console.WriteLine("Listening on " + BaseAddress);
         Console.ReadLine();
     }
     catch (Exception e) {
         Console.WriteLine("Could not start server: {0}", e.GetBaseException().Message);
         Console.WriteLine("Hit ENTER to exit...");
         Console.ReadLine();
     }
     finally {
         if (server != null) {
             // Stop listening
             server.CloseAsync().Wait();
         }
     }
 }
Ejemplo n.º 5
0
        private static void Main(string[] args) {
            string prefix = "http://localhost:8080";
            HttpSelfHostConfiguration config = new HttpSelfHostConfiguration(prefix);
            config.Routes.MapHttpRoute("Default", "{controller}/{action}");

            // Append our custom valueprovider to the list of value providers.
            config.Services.Add(typeof (ValueProviderFactory), new HeaderValueProviderFactory());

            HttpSelfHostServer server = new HttpSelfHostServer(config);
            server.OpenAsync().Wait();

            try {
                // HttpClient will make the call, but won't set the headers for you. 
                HttpClient client = new HttpClient();
                var response = client.GetAsync(prefix + "/ValueProviderTest/GetStuff?id=20").Result;

                // Browsers will set the headers. 
                // Loop. You can hit the request via: http://localhost:8080/Test2/GetStuff?id=40
                while (true) {
                    Thread.Sleep(1000);
                    Console.Write(".");
                }
            }
            finally {
                server.CloseAsync().Wait();
            }
        }
Ejemplo n.º 6
0
        static void Main(string[] args)
        {
            HttpSelfHostServer server = null;
            try
            {
                HttpSelfHostConfiguration config = new HttpSelfHostConfiguration(baseAddress);
                config.HostNameComparisonMode = HostNameComparisonMode.Exact;

                // Register default route
                config.Routes.MapHttpRoute(
                    name: "DefaultApi",
                    routeTemplate: "api/{controller}"
                );

                server = new HttpSelfHostServer(config);
                server.OpenAsync().Wait();
                Console.WriteLine("Listening on " + baseAddress);
                Console.WriteLine("Hit ENTER to exit...");
                Console.ReadLine();
            }
            catch (Exception e)
            {
                Console.WriteLine("Could not start server: {0}", e.GetBaseException().Message);
                Console.WriteLine("Hit ENTER to exit...");
                Console.ReadLine();
            }
            finally
            {
                if (server != null)
                {
                    server.CloseAsync().Wait();
                }
            }
        }
Ejemplo n.º 7
0
        public static void Main(string[] args)
        {


            HttpSelfHostServer server = null;
            try
            {
                var config = new HttpSelfHostConfiguration("http://localhost:3002/")
                {
                };
                //config.Formatters.Add(new HtmlMediaTypeFormatter());
                var todoList = new Application();
                config.Routes.Add("Noodles", config.Routes.CreateRoute("{*path}",
                    new HttpRouteValueDictionary("route"),
                    constraints: null,
                    dataTokens: null,
                    handler: new NoodlesHttpMessageHandler((r) => todoList)
                    ));
                server = new HttpSelfHostServer(config);

                server.OpenAsync().Wait();

                Console.WriteLine("Hit ENTER to exit");
                Console.ReadLine();
            }
            finally
            {
                if (server != null)
                {
                    server.CloseAsync().Wait();
                }
            }


        }
Ejemplo n.º 8
0
        public static void Main(string[] args)
        {
            HttpSelfHostServer server = null;
            try
            {
                var config = new HttpSelfHostConfiguration("http://localhost:3002/")
                {
                    MaxReceivedMessageSize = 1024*1024*1024,
                    TransferMode = TransferMode.Streamed,
                    MessageHandlers =
                    {
                        new ForwardProxyMessageHandler()
                    }
                };

                server = new HttpSelfHostServer(config);

                server.OpenAsync().Wait();

                Console.WriteLine("Hit ENTER to exit");
                Console.ReadLine();
            }
            finally
            {
                if (server != null)
                {
                    server.CloseAsync().Wait();
                }
            }
        }
Ejemplo n.º 9
0
        public static HttpStatusCode SendJsonGetCode(string routeTemp, string uri, string json)
        {
            HttpStatusCode actualHttpCode;

            HttpSelfHostConfiguration config
                = new HttpSelfHostConfiguration("http://localhost/");
            config.Routes.MapHttpRoute(
                name: "Default",
                routeTemplate: routeTemp
                );

            using (HttpSelfHostServer server = new HttpSelfHostServer(config))
            using (HttpClient client = getJsonClient())
            {
                server.OpenAsync().Wait();
                using (HttpRequestMessage request =
                    getJsonRequest(HttpMethod.Post, uri, json))
                using (HttpResponseMessage response = client.SendAsync(request).Result)
                {
                    actualHttpCode = response.StatusCode;
                }
                server.CloseAsync().Wait();
            }
            return actualHttpCode;
        }
        public void Body_WithSingletonControllerInstance_Fails()
        {
            // Arrange
            HttpClient httpClient = new HttpClient();
            string baseAddress = "http://localhost";
            string requestUri = baseAddress + "/Test";
            HttpSelfHostConfiguration configuration = new HttpSelfHostConfiguration(baseAddress);
            configuration.Routes.MapHttpRoute("Default", "{controller}", new { controller = "Test" });
            configuration.ServiceResolver.SetService(typeof(IHttpControllerFactory), new MySingletonControllerFactory());
            HttpSelfHostServer host = new HttpSelfHostServer(configuration);
            host.OpenAsync().Wait();
            HttpResponseMessage response = null;

            try
            {
                // Act
                response = httpClient.GetAsync(requestUri).Result;
                response = httpClient.GetAsync(requestUri).Result;
                response = httpClient.GetAsync(requestUri).Result;

                // Assert
                Assert.Equal(HttpStatusCode.InternalServerError, response.StatusCode);
            }
            finally
            {
                if (response != null)
                {
                    response.Dispose();
                }
            }

            host.CloseAsync().Wait();
        }
Ejemplo n.º 11
0
 public void Dispose()
 {
     if (server != null)
     {
         server.CloseAsync().Wait();
     }
 }
        public void Get_RequestCorrectCourseId_GetCorrectValues()
        {
            int actualCarId;            
            string actualZnacka;
            string actualModel;
            string actualSPZ;
            string actualVIN;
            int actualPocatecniStavKm;
            int actualRokVyroby;
            string actualPosledniSTK;
            int actualAutoskolaId;
            string actualTyp;
            int actualNajetoKm;
            int actualPrumernaSpotreba;

            HttpSelfHostConfiguration config
                = new HttpSelfHostConfiguration("http://localhost/");
            config.Routes.MapHttpRoute(
                name: "Default",
                routeTemplate: "{controller}/{id}"
                );
            using (HttpSelfHostServer server = new HttpSelfHostServer(config))
            using (HttpClient client = new HttpClient())
            {
                server.OpenAsync().Wait();
                using (HttpRequestMessage request =
                    new HttpRequestMessage(HttpMethod.Get, "http://localhost/vozidla/9"))
                using (HttpResponseMessage response = client.SendAsync(request).Result)
                {
                    string json = response.Content.ReadAsStringAsync().Result;
                    dynamic data = JObject.Parse(json);
                    actualCarId = data.vozidlo_id;                    
                    actualZnacka = data.znacka;
                    actualModel = data.model;
                    actualSPZ = data.spz;
                    actualVIN = data.vin;
                    actualPocatecniStavKm = data.pocatecni_stav_km;
                    actualRokVyroby = data.rok_vyroby;
                    actualPosledniSTK = data.posledni_stk;
                    actualAutoskolaId = data.autoskola_id;
                    actualTyp = data.vozidlo_typ;
                    actualNajetoKm = data.pocet_km;
                    actualPrumernaSpotreba = data.prumerna_spotreba;
                }
                server.CloseAsync().Wait();
            }
            Assert.AreEqual(9, actualCarId);
            Assert.AreEqual("Škoda",actualZnacka);
            Assert.AreEqual("Octavia", actualModel);
            Assert.AreEqual("3E8 3853", actualSPZ);
            Assert.AreEqual("FG5464RTV5432AF5F", actualVIN);
            Assert.AreEqual(8832, actualPocatecniStavKm);
            Assert.AreEqual(2007, actualRokVyroby);
            Assert.AreEqual(new DateTime(2013, 11, 25).ToString("MM/dd/yyyy HH:mm:ss"), actualPosledniSTK);
            Assert.AreEqual(1, actualAutoskolaId);
            Assert.AreEqual("osobni", actualTyp);
            Assert.AreEqual(8832 + 36, actualNajetoKm);
            Assert.AreEqual(6, actualPrumernaSpotreba);
        }
        static void Main(string[] args)
        {
            HttpSelfHostServer server = null;

            try
            {
                // Set up server configuration
                HttpSelfHostConfiguration config = new HttpSelfHostConfiguration(_baseAddress);
                config.IncludeErrorDetailPolicy = IncludeErrorDetailPolicy.Always;

                // Add $format support
                config.MessageHandlers.Add(new FormatQueryMessageHandler());

                // Add NavigationRoutingConvention2 to support POST, PUT, PATCH and DELETE on navigation property
                var conventions = ODataRoutingConventions.CreateDefault();
                conventions.Insert(0, new CustomNavigationRoutingConvention());

                // Enables OData support by adding an OData route and enabling querying support for OData.
                // Action selector and odata media type formatters will be registered in per-controller configuration only
                config.Routes.MapODataRoute(
                    routeName: "OData",
                    routePrefix: null,
                    model: ModelBuilder.GetEdmModel(),
                    pathHandler: new DefaultODataPathHandler(),
                    routingConventions: conventions);

                // Enable queryable support and allow $format query
                config.EnableQuerySupport(new QueryableAttribute { 
                    AllowedQueryOptions = AllowedQueryOptions.Supported | AllowedQueryOptions.Format });

                // To disable tracing in your application, please comment out or remove the following line of code
                // For more information, refer to: http://www.asp.net/web-api
                config.EnableSystemDiagnosticsTracing();

                config.Filters.Add(new ModelValidationFilterAttribute());

                // Create server
                server = new HttpSelfHostServer(config);

                // Start listening
                server.OpenAsync().Wait();
                Console.WriteLine("Listening on " + _baseAddress);
            }
            catch (Exception e)
            {
                Console.WriteLine("Could not start server: {0}", e.GetBaseException().Message);
            }
            finally
            {
                Console.WriteLine("Hit ENTER to exit...");
                Console.ReadLine();

                if (server != null)
                {
                    // Stop listening
                    server.CloseAsync().Wait();
                }
            }
        }
        public static void Main(string[] args)
        {
            HttpSelfHostServer server = null;
            try
            {
                // Set up server configuration
                HttpSelfHostConfiguration config = new HttpSelfHostConfiguration(_baseAddress);
                config.HostNameComparisonMode = HostNameComparisonMode.Exact;
                config.Formatters.JsonFormatter.Indent = true;
                config.Formatters.XmlFormatter.Indent = true;
                config.Routes.MapHttpRoute(
                    name: "DefaultApi",
                    routeTemplate: "api/{controller}/{id}",
                    defaults: new { id = RouteParameter.Optional }
                );

                // Create server
                server = new HttpSelfHostServer(config);

                // Start listening
                server.OpenAsync().Wait();
                Console.WriteLine("Listening on " + _baseAddress);

                Console.WriteLine("*******************************");
                Console.WriteLine("POSTing a valid customer");
                Console.WriteLine("*******************************");
                PostValidCustomer();

                Console.WriteLine("*******************************");
                Console.WriteLine("POSTing a customer with a missing ID");
                Console.WriteLine("*******************************");
                PostCustomerMissingID();

                Console.WriteLine("*******************************");
                Console.WriteLine("POSTing a customer with negative ID and invalid phone number");
                Console.WriteLine("*******************************");
                PostInvalidCustomerUsingJson();

                Console.WriteLine("*******************************");
                Console.WriteLine("POSTing a customer with negative ID and invalid phone number using XML");
                Console.WriteLine("*******************************");
                PostInvalidCustomerUsingXml();
            }
            catch (Exception e)
            {
                Console.WriteLine("Could not start server: {0}", e.GetBaseException().Message);
            }
            finally
            {
                if (server != null)
                {
                    // Stop listening
                    server.CloseAsync().Wait();
                }
                Console.WriteLine("Hit ENTER to exit...");
                Console.ReadLine();
            }
        }
Ejemplo n.º 15
0
        static void Main(string[] args)
        {
            HttpSelfHostServer server = null;

            try
            {
                // Configure Server Settings
                HttpSelfHostConfiguration config = new HttpSelfHostConfiguration(_baseAddress);

                config.Routes.MapHttpRoute(
                    "API Default", "api/{controller}/{id}",
                    defaults: new {id = RouteParameter.Optional});

                // Create Server
                server = new HttpSelfHostServer(config);

                //Start Listening
                server.OpenAsync().Wait();
                Console.WriteLine("Listening on " + _baseAddress);

                Console.WriteLine("Press Enter to exit...");
                Console.WriteLine();

                // Call the web Api and display the result
                HttpClient client = new HttpClient();
                client.GetStringAsync(_baseAddress).ContinueWith(
                    getTask =>
                    {
                        if (getTask.IsCanceled)
                            Console.WriteLine("Request was canceled");

                        else if (getTask.IsFaulted)
                            Console.WriteLine("Request failed: {0}", getTask.Exception);

                        else
                            Console.WriteLine("Client reieved: {0}", getTask.Result);
                    });

                Console.ReadLine();
            }
            catch (Exception ex)
            {
                Console.WriteLine("Couln't start Server: {0}", ex.GetBaseException().Message);
                Console.WriteLine("Press Enter to exit..");
                Console.ReadLine();
            }
            finally
            {
                if (server != null)
                {
                    // Stop Listening
                    server.CloseAsync().Wait();
                }
            }
        }
Ejemplo n.º 16
0
        static void Main(string[] args)
        {
            var config = new HttpSelfHostConfiguration(new Uri("http://localhost:8080"));
            Bootstrap.Configure(config);
            var server = new HttpSelfHostServer(config);

            server.OpenAsync().Wait();
            Console.WriteLine("Your Server is waiting at {0}", config.BaseAddress);
            Console.ReadLine();
            server.CloseAsync().Wait();
        }
 private void SafeClose(HttpSelfHostServer server)
 {
     try
     {
         server.CloseAsync().Wait();
     }
     catch
     {
         System.Diagnostics.Debug.WriteLine("HttpSelfHostServerTests.SafeOpen failed to close server at " + server.Configuration.VirtualPathRoot);
     }
 }
        static void Main(string[] args)
        {
            HttpSelfHostServer server = null;

            try
            {
                // Create configuration
                var config = new HttpSelfHostConfiguration(_baseAddress);
                config.HostNameComparisonMode = HostNameComparisonMode.Exact;

                // Turn on streaming in selfhost for both requests and responses.
                // if you do this in ASP.NET then please see this blog from @filip_woj for details 
                // on how to turn off buffering in ASP.NET: 
                // http://www.strathweb.com/2012/09/dealing-with-large-files-in-asp-net-web-api/
                config.TransferMode = TransferMode.Streamed;

                // Set max received size to 10G
                config.MaxReceivedMessageSize = 10L * 1024 * 1024 * 1024;

                // Set receive and send timeout to 20 mins
                config.ReceiveTimeout = TimeSpan.FromMinutes(20);
                config.SendTimeout = TimeSpan.FromMinutes(20);

                // Add a route
                config.Routes.MapHttpRoute(
                  name: "default",
                  routeTemplate: "api/{controller}/{id}",
                  defaults: new { controller = "Home", id = RouteParameter.Optional });

                // Create server
                server = new HttpSelfHostServer(config);

                // Start server
                server.OpenAsync().Wait();

                Console.WriteLine("Server listening at {0}", _baseAddress);
                Console.WriteLine("Hit ENTER to exit");
                Console.ReadLine();
            }
            catch (Exception e)
            {
                Console.WriteLine("Could not start server: {0}", e.GetBaseException().Message);
                Console.WriteLine("Hit ENTER to exit...");
                Console.ReadLine();
            }
            finally
            {
                if (server != null)
                {
                    // Close server
                    server.CloseAsync().Wait();
                }
            }
        }
Ejemplo n.º 19
0
        static void Main( string[] args )
        {
            //---   Initialise log4net

            log4net.Config.XmlConfigurator.Configure();

            log_ = log4net.LogManager.GetLogger( typeof( Program ) );

            //---   Create the interface to Cortex

            cortex_ = CortexInterface.Instance;

            //---   Self host the WebAPI

            HttpSelfHostServer server = null;

            try
            {
                //---   Set up server configuration

                HttpSelfHostConfiguration config = new HttpSelfHostConfiguration( _baseAddress );

                config.Routes.MapHttpRoute(
                    name: "DefaultApi",
                    routeTemplate: "api/{controller}/{object_id}/{port_id}",
                    defaults: new { object_id = RouteParameter.Optional, port_id = RouteParameter.Optional }
                );

                //---   Create the server

                server = new HttpSelfHostServer( config );

                //---   Start listening

                server.OpenAsync().Wait();
                log_.Info( "Listening on " + _baseAddress + " Hit ENTER to exit..." );
                Console.ReadLine();
            }
            catch ( Exception e )
            {
                log_.Error( "Could not start server: " + e.GetBaseException().Message );
                log_.Error( "Hit ENTER to exit..." );
                Console.ReadLine();
            }
            finally
            {
                if ( server != null )
                {
                    //---   Stop listening
                    server.CloseAsync().Wait();
                }
            }
        }
Ejemplo n.º 20
0
        public async Task SendAsync_ServiceModel_AddsSelfHostHttpRequestContext()
        {
            // Arrange
            using (PortReserver port = new PortReserver())
            {
                string baseUri = port.BaseUri;

                HttpRequestContext context = null;
                Uri via = null;

                Func <HttpRequestMessage, CancellationToken, Task <HttpResponseMessage> > sendAsync = (r, c) =>
                {
                    if (r != null)
                    {
                        context = r.GetRequestContext();
                    }

                    SelfHostHttpRequestContext typedContext = context as SelfHostHttpRequestContext;

                    if (typedContext != null)
                    {
                        via = typedContext.RequestContext.RequestMessage.Properties.Via;
                    }

                    return(Task.FromResult(new HttpResponseMessage()));
                };

                using (HttpSelfHostConfiguration expectedConfiguration = new HttpSelfHostConfiguration(baseUri))
                {
                    expectedConfiguration.HostNameComparisonMode = HostNameComparisonMode.Exact;

                    using (HttpMessageHandler dispatcher = new LambdaHttpMessageHandler(sendAsync))
                        using (HttpSelfHostServer server = new HttpSelfHostServer(expectedConfiguration, dispatcher))
                            using (HttpClient client = new HttpClient())
                                using (HttpRequestMessage expectedRequest = new HttpRequestMessage(HttpMethod.Get, baseUri))
                                {
                                    await server.OpenAsync();

                                    // Act
                                    using (HttpResponseMessage ignore = await client.SendAsync(expectedRequest))
                                    {
                                        // Assert
                                        SelfHostHttpRequestContext typedContext = (SelfHostHttpRequestContext)context;
                                        Assert.Equal(expectedRequest.RequestUri, via);
                                        Assert.Same(expectedConfiguration, context.Configuration);
                                        Assert.Equal(expectedRequest.RequestUri, typedContext.Request.RequestUri);

                                        await server.CloseAsync();
                                    }
                                }
                }
            }
        }
Ejemplo n.º 21
0
Archivo: Runner.cs Proyecto: asipe/Nucs
 private static void DoStart(IConfig appConfig)
 {
     var httpConfig = new HttpSelfHostConfiguration("http://localhost:49991") {HostNameComparisonMode = HostNameComparisonMode.Exact};
       ConfigureRoutes(httpConfig);
       ConfigureDependencyResolver(httpConfig, appConfig);
       using (var server = new HttpSelfHostServer(httpConfig)) {
     server.OpenAsync().Wait();
     Console.WriteLine("Press Enter to quit.");
     Console.ReadLine();
     server.CloseAsync().Wait();
       }
 }
        public void Get_RequestCorrectId_GetCorrectValues()
        {
            int actualTeacherId;
            string actualOsobniCislo;
            string actualJmeno;
            string actualPrijmeni;
            string actualAdresaMesto;
            string actualAdresaUlice;
            int actualAdresaCP;
            int actualAdresaPSC;
            int actualAutoskolaId;

            HttpSelfHostConfiguration config
                = new HttpSelfHostConfiguration("http://localhost/");
            config.Routes.MapHttpRoute(
                name: "Default",
                routeTemplate: "{controller}/{id}"
                );

            using (HttpSelfHostServer server = new HttpSelfHostServer(config))
            using (HttpClient client = new HttpClient())
            {
                server.OpenAsync().Wait();

                using (HttpRequestMessage request =
                    new HttpRequestMessage(HttpMethod.Get, "http://localhost/ucitele/1"))
                using (HttpResponseMessage response = client.SendAsync(request).Result)
                {
                    string json = response.Content.ReadAsStringAsync().Result;
                    dynamic data = JObject.Parse(json);
                    actualTeacherId = data.ucitel_id;
                    actualOsobniCislo = data.osobni_cislo;
                    actualJmeno = data.jmeno;
                    actualPrijmeni = data.prijmeni;
                    actualAdresaMesto = data.adresa_mesto;
                    actualAdresaUlice = data.adresa_ulice;
                    actualAdresaCP = data.adresa_cp;
                    actualAdresaPSC = data.adresa_psc;
                    actualAutoskolaId = data.autoskola_id;
                }
                server.CloseAsync().Wait();
            }
            Assert.AreEqual(1, actualTeacherId);
            Assert.AreEqual("111", actualOsobniCislo);
            Assert.AreEqual("Jan", actualJmeno);
            Assert.AreEqual("Jandera", actualPrijmeni);
            Assert.AreEqual("Pce", actualAdresaMesto);
            Assert.AreEqual("ul", actualAdresaUlice);
            Assert.AreEqual(123, actualAdresaCP);
            Assert.AreEqual(12345, actualAdresaPSC);
            Assert.AreEqual(1, actualAutoskolaId);
        }
Ejemplo n.º 23
0
        static void Main(string[] args)
        {
            XmlConfigurator.Configure();

            string listenAddress = null;
            string script = null;
            bool help = false;
            var options = new OptionSet
                        {
                            {"listen=", x => listenAddress = x },
                            {"script=", x => script = x },
                            {"h|?|help", x => help = x != null},
                        };

            options.Parse(args);
            if (listenAddress == null || help)
            {
                PrintUsage();
                return;
            }

            var buffers = new InputOutputBuffers();

            Log.Info("Initializing PowerShell");
            var powerShell = new PSWrapper(buffers, () => ExitEvent.Set());

            buffers.RegisterForInCommand((cmd, scope) => powerShell.TryExecute(cmd.TextLine));

            var config = new HttpSelfHostConfiguration(listenAddress);
            config.Services.Insert(typeof(IHttpControllerActivator), 0, new ControllerActivator(buffers));

            config.Routes.MapHttpRoute("session", "session", new { controller = "Session" });
            config.Routes.MapHttpRoute("content", "{contentFile}", new { controller = "Content" });

            var server = new HttpSelfHostServer(config);
            Log.InfoFormat("Staring HTTP listener at {0}", listenAddress);
            server.OpenAsync().Wait();

            if (script != null)
            {
                RunScript(script, powerShell);
            }
            else
            {
                StartInteractivePrompt(buffers);
            }
            Log.InfoFormat("System ready");
            ExitEvent.Wait();
            server.CloseAsync().Wait();

            powerShell.Dispose();
        }
        public void Run(string baseAddress)
        {
            var config = HypermediaApiConfiguration.ConfigureSite(baseAddress);

            var host = new HttpSelfHostServer(config);

            host.OpenAsync().Wait();

            Console.WriteLine("Press enter to shutdown service");
            Console.ReadLine();

            host.CloseAsync().Wait();
        }
        public void Get_RequestCorrectRideId_GetCorrectValues()
        {
            int actualRideId;
            double actualNajeto;
            double actualSpotreba;
            string actualDateOd;
            string actualDateDo;
            int actualVozidloId;
            int actualStudentId;
            int actualUcitelId;
            //int actualKurzId;

            HttpSelfHostConfiguration config
                = new HttpSelfHostConfiguration("http://localhost/");
            config.Routes.MapHttpRoute(
                name: "Default",
                routeTemplate: "{controller}/{id}"
                );
            using (HttpSelfHostServer server = new HttpSelfHostServer(config))
            using (HttpClient client = new HttpClient())
            {
                server.OpenAsync().Wait();

                using (HttpRequestMessage request =
                    new HttpRequestMessage(HttpMethod.Get, "http://localhost/jizdy/16"))
                using (HttpResponseMessage response = client.SendAsync(request).Result)
                {
                    string json = response.Content.ReadAsStringAsync().Result;
                    dynamic data = JObject.Parse(json);
                    actualRideId = data.jizda_id;
                    actualNajeto = data.najeto;
                    actualSpotreba = data.spotreba;
                    actualDateOd = data.cas_od; //databaze: od, model: cas_od
                    actualDateDo = data.cas_do; //databaze: do, model: cas_do
                    actualVozidloId = data.vozidlo_id;
                    actualStudentId = data.student_id;
                    actualUcitelId = data.ucitel_id;
                    //actualKurzId = data.kurz_id; //Controller ho nevraci. Je to zamer?
                }
                server.CloseAsync().Wait();
            }
            Assert.AreEqual(16, actualRideId);
            Assert.AreEqual(16, actualNajeto);
            Assert.AreEqual(7, actualSpotreba);
            Assert.AreEqual(new DateTime(2013, 11, 5, 10, 32, 00).ToString("MM/dd/yyyy HH:mm:ss"), actualDateOd);
            Assert.AreEqual(new DateTime(2013, 11, 5, 12, 32, 00).ToString("MM/dd/yyyy HH:mm:ss"), actualDateDo);
            Assert.AreEqual(9, actualVozidloId);
            Assert.AreEqual(9, actualStudentId);
            Assert.AreEqual(1, actualUcitelId);
            //Assert.AreEqual(8, actualKurzId);
        }
Ejemplo n.º 26
0
        public void SendAsync_ServiceModel_AddsSelfHostHttpRequestContext()
        {
            // Arrange
            // Use a different port from 50231 to prevent conflicts with concurrent tests.
            string baseUri = "http://localhost:50232/";

            HttpRequestContext context = null;
            Uri via = null;

            Func <HttpRequestMessage, CancellationToken, Task <HttpResponseMessage> > sendAsync = (r, c) =>
            {
                if (r != null)
                {
                    context = r.GetRequestContext();
                }

                SelfHostHttpRequestContext typedContext = context as SelfHostHttpRequestContext;

                if (typedContext != null)
                {
                    via = typedContext.RequestContext.RequestMessage.Properties.Via;
                }

                return(Task.FromResult(new HttpResponseMessage()));
            };

            using (HttpSelfHostConfiguration expectedConfiguration = new HttpSelfHostConfiguration(baseUri))
            {
                expectedConfiguration.HostNameComparisonMode = HostNameComparisonMode.Exact;

                using (HttpMessageHandler dispatcher = new LambdaHttpMessageHandler(sendAsync))
                    using (HttpSelfHostServer server = new HttpSelfHostServer(expectedConfiguration, dispatcher))
                        using (HttpClient client = new HttpClient())
                            using (HttpRequestMessage expectedRequest = new HttpRequestMessage(HttpMethod.Get, baseUri))
                            {
                                server.OpenAsync().Wait();

                                // Act
                                using (HttpResponseMessage ignore = client.SendAsync(expectedRequest).Result)
                                {
                                    // Assert
                                    SelfHostHttpRequestContext typedContext = (SelfHostHttpRequestContext)context;
                                    Assert.Equal(expectedRequest.RequestUri, via);
                                    Assert.Same(expectedConfiguration, context.Configuration);
                                    Assert.Equal(expectedRequest.RequestUri, typedContext.Request.RequestUri);

                                    server.CloseAsync().Wait();
                                }
                            }
            }
        }
        static void Main(string[] args)
        {
            HttpSelfHostServer server = null;
            try
            {
                // Set up server configuration
                HttpSelfHostConfiguration config = new HttpSelfHostConfiguration(_baseAddress);
                config.HostNameComparisonMode = HostNameComparisonMode.Exact;

                // Set up Attribute Routing
                config.Routes.MapHttpAttributeRoutes(attributeRoutingConfig =>
                {
                    // Get list of assemblies we search
                    IAssembliesResolver assemblyResolver = config.Services.GetAssembliesResolver();

                    // Add routes for all controllers in these assemblies
                    foreach (Assembly assembly in assemblyResolver.GetAssemblies())
                    {
                        attributeRoutingConfig.AddRoutesFromAssembly(assembly);
                    }
                });

                // Create server
                server = new HttpSelfHostServer(config);

                // Start listening
                server.OpenAsync().Wait();
                Console.WriteLine("Listening on " + _baseAddress);

                // Run HttpClient issuing requests
                RunClient();

                Console.WriteLine("Hit ENTER to exit...");
                Console.ReadLine();
            }
            catch (Exception e)
            {
                Console.WriteLine("Could not start server: {0}", e.GetBaseException().Message);
                Console.WriteLine("Hit ENTER to exit...");
                Console.ReadLine();
            }
            finally
            {
                if (server != null)
                {
                    // Stop listening
                    server.CloseAsync().Wait();
                }
            }
        }
        static void Main(string[] args)
        {
            HttpSelfHostServer server = null;
            try
            {
                // Set up server configuration
                HttpSelfHostConfiguration config = new HttpSelfHostConfiguration(_baseAddress);
                config.HostNameComparisonMode = HostNameComparisonMode.Exact;

                config.Routes.MapHttpRoute(
                    name: "DefaultApi",
                    routeTemplate: "api/{controller}/{id}",
                    defaults: new { id = RouteParameter.Optional }
                );

                // Set parameters for uploading large files
                config.MaxReceivedMessageSize = 16L * 1024 * 1024 * 1024;
                config.ReceiveTimeout = TimeSpan.FromMinutes(20);
                config.TransferMode = TransferMode.StreamedRequest;

                // Create server
                server = new HttpSelfHostServer(config);

                // Start listening
                server.OpenAsync().Wait();
                Console.WriteLine("Listening on " + _baseAddress);

                // Run HttpClient issuing requests
                RunClient();

                Console.WriteLine("Hit ENTER to exit...");
                Console.ReadLine();

            }
            catch (Exception e)
            {
                Console.WriteLine("Could not start server: {0}", e.GetBaseException().Message);
                Console.WriteLine("Hit ENTER to exit...");
                Console.ReadLine();
            }
            finally
            {
                if (server != null)
                {
                    // Stop listening
                    server.CloseAsync().Wait();
                }
            }
        }
Ejemplo n.º 29
0
        static void Main()
        {
            var config = new HttpSelfHostConfiguration(new Uri("http://localhost:9200"));

            ServiceConfiguration.Configure(config);

            var host = new HttpSelfHostServer(config);

            host.OpenAsync().Wait();

            Console.WriteLine("Press any key to exit");
            Console.ReadLine();

            host.CloseAsync().Wait();
        }
Ejemplo n.º 30
0
        static void Main(string[] args)
        {
            var config = new HttpSelfHostConfiguration("http://localhost:8080");
            config.Routes.MapHttpRoute(
                "ApiDefault",
                "api/{controller}/{id}",
                new {id = RouteParameter.Optional}
                );

            var server = new HttpSelfHostServer(config);
            server.OpenAsync().Wait();
            Console.WriteLine("Server is opened");
            Console.ReadKey();
            server.CloseAsync().Wait();
        }
        static void Main(string[] args)
        {
            HttpSelfHostServer server = null;
            try
            {
                // Set up server configuration
                HttpSelfHostConfiguration config = new HttpSelfHostConfiguration(_baseAddress);
                config.HostNameComparisonMode = HostNameComparisonMode.Exact;

                config.Routes.MapHttpRoute(
                    name: "DefaultApi",
                    routeTemplate: "api/{controller}/{id}",
                    defaults: new { id = RouteParameter.Optional }
                );

                // Set our own assembly resolver where we add the assemblies we need           
                CustomAssembliesResolver assemblyResolver = new CustomAssembliesResolver();
                config.Services.Replace(typeof(IAssembliesResolver), assemblyResolver);

                // Create server
                server = new HttpSelfHostServer(config);

                // Start listening
                server.OpenAsync().Wait();
                Console.WriteLine("Listening on " + _baseAddress);

                // Run HttpClient issuing requests
                RunClient();

                Console.WriteLine("Hit ENTER to exit...");
                Console.ReadLine();

            }
            catch (Exception e)
            {
                Console.WriteLine("Could not start server: {0}", e.GetBaseException().Message);
                Console.WriteLine("Hit ENTER to exit...");
                Console.ReadLine();
            }
            finally
            {
                if (server != null)
                {
                    // Stop listening
                    server.CloseAsync().Wait();
                }
            }
        }
Ejemplo n.º 32
0
        static void Main(string[] args)
        {
            var baseurl = new Uri("http://localhost:9000/");
            var config = new HttpSelfHostConfiguration(baseurl);

            config.MessageHandlers.Add(new GitHubApiRouter(baseurl));

            var host = new HttpSelfHostServer(config);
            host.OpenAsync().Wait();

            Console.WriteLine("Host open.  Hit enter to exit...");

            Console.Read();

            host.CloseAsync().Wait();
        }
        static void Main(string[] args)
        {
            HttpSelfHostServer server = null;
            try
            {
                // Set up server configuration
                HttpSelfHostConfiguration config = new HttpSelfHostConfiguration(_baseAddress);
                config.HostNameComparisonMode = HostNameComparisonMode.Exact;

                // Add a route
                config.Routes.MapHttpRoute(
                  name: "default",
                  routeTemplate: "api/{controller}/{id}",
                  defaults: new { controller = "Home", id = RouteParameter.Optional });

                // Set up ResponseEntityHandler with a temporary folder
                Directory.CreateDirectory(TempFolder);
                DelegatingHandler responseEntityHandler = new ResponseEntityHandler(TempFolder);

                // Add our sample message handler to the server configuration
                config.MessageHandlers.Add(responseEntityHandler);

                server = new HttpSelfHostServer(config);
                server.OpenAsync().Wait();
                Console.WriteLine("Listening on " + _baseAddress);

                // Run HttpClient issuing requests
                RunClient();

                Console.WriteLine("Hit ENTER to exit...");
                Console.ReadLine();
            }
            catch (Exception e)
            {
                Console.WriteLine("Could not start server: {0}", e.GetBaseException().Message);
                Console.WriteLine("Hit ENTER to exit...");
                Console.ReadLine();
            }
            finally
            {
                if (server != null)
                {
                    // Stop listening
                    server.CloseAsync().Wait();
                }
            }
        }
Ejemplo n.º 34
0
        static void Main(string[] args)
        {
            var config = new HttpSelfHostConfiguration("http://localhost:9100/");

            config.Routes.MapHttpRoute("default", "{controller}/{id}", new { id = RouteParameter.Optional });

            foreach(var f in Formatters.Available) { config.Formatters.Add(f); }

            var host = new HttpSelfHostServer(config);

            host.OpenAsync().Wait();

            Console.WriteLine("Press enter to shutdown service");
            Console.ReadLine();

            host.CloseAsync().Wait();
        }
Ejemplo n.º 35
0
 public void Dispose()
 {
     _testPort.Dispose();
     HttpClient.Dispose();
     _server.CloseAsync().Wait();
 }
Ejemplo n.º 36
0
 public void Dispose()
 {
     httpClient.Dispose();
     server.CloseAsync().Wait();
 }