当前位置: 首页>>代码示例>>C#>>正文


C# HttpServer.Start方法代码示例

本文整理汇总了C#中HttpServer.Start方法的典型用法代码示例。如果您正苦于以下问题:C# HttpServer.Start方法的具体用法?C# HttpServer.Start怎么用?C# HttpServer.Start使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在HttpServer的用法示例。


在下文中一共展示了HttpServer.Start方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: Second_start_on_different_port_must_fail

        public void Second_start_on_different_port_must_fail()
        {
            const int port = 8080;
            using (var server = new HttpServer())
            {
                server.Start(port, null);

                Executing.This(() => server.Start(port + 1, null))
                    .Should()
                    .Throw<AtlasException>()
                    .And.Exception.ErrorCode.Should().Be.EqualTo(HttpServerErrors.ServerAlreadyStarted);
            }
        }
开发者ID:silviom,项目名称:Atlas,代码行数:13,代码来源:HttpServerFixture.cs

示例2: Main

        public static void Main(string[] args)
        {
            _httpsv = new HttpServer(4649);
              //_httpsv.Sweeping = false;
              _httpsv.AddWebSocketService<Echo>("/Echo");
              _httpsv.AddWebSocketService<Chat>("/Chat");

              _httpsv.OnGet += (sender, e) =>
              {
            onGet(e);
              };

              _httpsv.OnError += (sender, e) =>
              {
            Console.WriteLine(e.Message);
              };

              _httpsv.Start();
              Console.WriteLine("HTTP Server listening on port: {0} service path:", _httpsv.Port);
              foreach (var path in _httpsv.ServicePaths)
            Console.WriteLine("  {0}", path);
              Console.WriteLine();

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

              _httpsv.Stop();
        }
开发者ID:rje,项目名称:websocket-sharp,代码行数:28,代码来源:Program.cs

示例3: PostWithContentWithoutType

        public void PostWithContentWithoutType()
        {
            using (var server = new HttpServer())
            using (var uploadStream = new MemoryStream())
            {
                WriteRandomData(uploadStream, 1 * 1024 * 1024);

                server.RequestReceived += (s, e) =>
                {
                    uploadStream.Position = 0;

                    Assert.AreEqual("POST", e.Request.HttpMethod);
                    Assert.AreEqual(uploadStream, e.Request.InputStream);
                    Assert.IsNull(e.Request.ContentType);
                };

                server.Start();

                var request = (HttpWebRequest)WebRequest.Create(
                    String.Format("http://{0}/", server.EndPoint)
                );

                uploadStream.Position = 0;

                request.Method = "POST";
                request.ContentLength = uploadStream.Length;

                using (var stream = request.GetRequestStream())
                {
                    uploadStream.CopyTo(stream);
                }

                GetResponseFromRequest(request);
            }
        }
开发者ID:smile921,项目名称:hak_blog,代码行数:35,代码来源:PostRequest.cs

示例4: ForcedShutdown

        public void ForcedShutdown()
        {
            using (var server = new HttpServer())
            {
                server.ShutdownTimeout = TimeSpan.FromSeconds(1);

                server.RequestReceived += (s, e) =>
                {
                    // Start closing the server.

                    ThreadPool.QueueUserWorkItem(p => server.Stop());

                    // Wait some time to fulfill the request.

                    Thread.Sleep(TimeSpan.FromSeconds(30));

                    using (var writer = new StreamWriter(e.Response.OutputStream))
                    {
                        writer.WriteLine("Hello!");
                    }
                };

                server.Start();

                var request = (HttpWebRequest)WebRequest.Create(
                    String.Format("http://{0}/", server.EndPoint)
                );

                GetResponseFromRequest(request);
            }
        }
开发者ID:smile921,项目名称:hak_blog,代码行数:31,代码来源:GracefullShutdown.cs

示例5: Main

        public static void Main(string [] args)
        {
            _httpsv = new HttpServer (4649);
              #if DEBUG
              _httpsv.Log.Level = LogLevel.TRACE;
              #endif
              _httpsv.RootPath = ConfigurationManager.AppSettings ["RootPath"];
              //_httpsv.KeepClean = false;
              _httpsv.AddWebSocketService<Echo> ("/Echo");
              _httpsv.AddWebSocketService<Chat> ("/Chat");

              _httpsv.OnGet += (sender, e) =>
              {
            onGet (e);
              };

              _httpsv.OnError += (sender, e) =>
              {
            Console.WriteLine (e.Message);
              };

              _httpsv.Start ();
              Console.WriteLine ("HTTP Server listening on port: {0} service path:", _httpsv.Port);
              foreach (var path in _httpsv.ServicePaths)
            Console.WriteLine ("  {0}", path);
              Console.WriteLine ();

              Console.WriteLine ("Press enter key to stop the server...");
              Console.ReadLine ();

              _httpsv.Stop ();
        }
开发者ID:vnisor,项目名称:websocket-sharp,代码行数:32,代码来源:Program.cs

示例6: Main

        public static void Main(string [] args)
        {
            _httpsv = new HttpServer (4649);
              //_httpsv = new HttpServer (4649, true);
              #if DEBUG
              _httpsv.Log.Level = LogLevel.TRACE;
              #endif
              _httpsv.RootPath = ConfigurationManager.AppSettings ["RootPath"];
              //var certFile = ConfigurationManager.AppSettings ["ServerCertFile"];
              //var password = ConfigurationManager.AppSettings ["CertFilePassword"];
              //_httpsv.Certificate = new X509Certificate2 (certFile, password);
              //_httpsv.KeepClean = false;
              _httpsv.AddWebSocketService<Echo> ("/Echo");
              _httpsv.AddWebSocketService<Chat> ("/Chat");

              _httpsv.OnGet += (sender, e) =>
              {
            onGet (e);
              };

              _httpsv.Start ();
              if (_httpsv.IsListening)
              {
            Console.WriteLine ("HTTP Server listening on port: {0} service path:", _httpsv.Port);
            foreach (var path in _httpsv.WebSocketServices.ServicePaths)
              Console.WriteLine ("  {0}", path);

            Console.WriteLine ();
              }

              Console.WriteLine ("Press Enter key to stop the server...");
              Console.ReadLine ();

              _httpsv.Stop ();
        }
开发者ID:KingKiller,项目名称:websocket-sharp,代码行数:35,代码来源:Program.cs

示例7: HandledHandlerExceptionWithoutOutput

        public void HandledHandlerExceptionWithoutOutput()
        {
            using (var server = new HttpServer())
            {
                server.RequestReceived += (s, e) =>
                {
                    throw new Exception();
                };

                server.UnhandledException += (s, e) =>
                {
                    e.Response.Status = "200 OK";
                    e.Handled = true;
                };

                server.Start();

                var request = (HttpWebRequest)WebRequest.Create(
                    String.Format("http://{0}/", server.EndPoint)
                );

                using (var response = (HttpWebResponse)request.GetResponse())
                {
                    Assert.AreEqual(HttpStatusCode.OK, response.StatusCode);
                    Assert.AreEqual("OK", response.StatusDescription);

                    using (var stream = response.GetResponseStream())
                    using (var reader = new StreamReader(stream))
                    {
                        Assert.IsEmpty(reader.ReadToEnd());
                    }
                }
            }
        }
开发者ID:smile921,项目名称:hak_blog,代码行数:34,代码来源:ExceptionInHandler.cs

示例8: ExceptionOnRequestReceived

        public void ExceptionOnRequestReceived()
        {
            using (var server = new HttpServer())
            {
                server.RequestReceived += (s, e) =>
                {
                    throw new Exception();
                };

                server.Start();

                var request = (HttpWebRequest)WebRequest.Create(
                    String.Format("http://{0}/", server.EndPoint)
                );

                try
                {
                    GetResponseFromRequest(request);
                }
                catch (WebException ex)
                {
                    var response = (HttpWebResponse)ex.Response;

                    Assert.AreEqual(HttpStatusCode.InternalServerError, response.StatusCode);
                    Assert.AreEqual("Internal Server Error", response.StatusDescription);
                }
            }
        }
开发者ID:smile921,项目名称:hak_blog,代码行数:28,代码来源:StatusCode.cs

示例9: Main

        static void Main(string[] args)
        {
            HttpServer http = new HttpServer();

            http.ProcessRequest = (request, response) =>
            {
                Console.WriteLine(request.Url);

                if (request.Url != "/foo")
                {
                    response.WriteLine("Hello from {0}.", request.Url);
                }
                else
                {
                    response.StatusCode = HttpStatusCode.NotFound;
                }
            };

            http.Start();

            Console.WriteLine("Press enter to stop HTTP server.");
            Console.ReadLine();

            http.Stop();

            Console.WriteLine("Press any key to exit...");
            Console.ReadKey();
        }
开发者ID:smack0007,项目名称:Grapevine,代码行数:28,代码来源:Program.cs

示例10: Issue14_should_work_with_concurrent_requests

 public Issue14_should_work_with_concurrent_requests()
 {
     var moduleManager = new ModuleManager();
     moduleManager.Add(this);
     _server = new HttpServer(moduleManager);
     _server.Start(IPAddress.Any, 0);
 }
开发者ID:2594636985,项目名称:Griffin.WebServer,代码行数:7,代码来源:Issue14_should_work_with_concurrent_requests.cs

示例11: QueryStringKeyWithMultipleValues

        public void QueryStringKeyWithMultipleValues()
        {
            using (var server = new HttpServer())
            {
                server.RequestReceived += (s, e) =>
                {
                    Assert.That(e.Request.QueryString.AllKeys, Is.EquivalentTo(new[] { "key" }));
                    Assert.That(e.Request.QueryString.GetValues("key"), Is.EquivalentTo(new[] { "first", "second", "third" }));
                    Assert.AreEqual(e.Request.QueryString["key"], "first,second,third");

                    using (var writer = new StreamWriter(e.Response.OutputStream))
                    {
                        writer.Write(ResponseText);
                    }
                };

                server.Start();

                var request = (HttpWebRequest)WebRequest.Create(
                    String.Format("http://{0}/?key=first&key=second&key=third", server.EndPoint)
                );

                Assert.AreEqual(ResponseText, GetResponseFromRequest(request));
            }
        }
开发者ID:Cocotus,项目名称:NHttp,代码行数:25,代码来源:BasicRequest.cs

示例12: BasicUpload

        public void BasicUpload()
        {
            using (var server = new HttpServer())
            {
                server.RequestReceived += (s, e) =>
                {
                    Assert.That(e.Request.Form.AllKeys, Is.EquivalentTo(new[] { "key" }));
                    Assert.AreEqual("value", e.Request.Form["key"]);
                    Assert.AreEqual("multipart/form-data", e.Request.ContentType);
                    Assert.AreEqual("POST", e.Request.HttpMethod);
                    Assert.IsNull(e.Request.InputStream);
                };

                server.Start();

                var request = (HttpWebRequest)WebRequest.Create(
                    String.Format("http://{0}/", server.EndPoint)
                );

                using (var writer = new MultiPartWriter(request))
                {
                    writer.WriteValue("key", "value");
                }

                GetResponseFromRequest(request);
            }
        }
开发者ID:smile921,项目名称:hak_blog,代码行数:27,代码来源:MultiPartUpload.cs

示例13: SetCookie

        public void SetCookie()
        {
            using (var server = new HttpServer())
            {
                server.RequestReceived += (s, e) =>
                {
                    e.Response.Cookies["a"].Value = "b";
                };

                server.Start();

                var request = (HttpWebRequest)WebRequest.Create(
                    String.Format("http://{0}/", server.EndPoint)
                );

                request.CookieContainer = new CookieContainer();

                using (var response = (HttpWebResponse)request.GetResponse())
                {
                    Assert.AreEqual("a=b; path=/", response.Headers["Set-Cookie"]);
                    Assert.AreEqual(1, response.Cookies.Count);

                    var cookie = response.Cookies[0];

                    Assert.AreEqual("a", cookie.Name);
                    Assert.AreEqual("b", cookie.Value);
                    Assert.AreEqual("/", cookie.Path);
                    Assert.AreEqual(server.EndPoint.Address.ToString(), cookie.Domain);
                    Assert.AreEqual(DateTime.MinValue, cookie.Expires);
                    Assert.AreEqual(false, cookie.HttpOnly);
                    Assert.AreEqual(false, cookie.Secure);
                }
            }
        }
开发者ID:Cocotus,项目名称:NHttp,代码行数:34,代码来源:Cookies.cs

示例14: Main

        static void Main(string[] args)
        {
            // Template generators are used to render templates 
            // (convert code + html to pure html).
            TemplateManager mgr = new TemplateManager();
            mgr.Add("haml", new HamlGenerator());

            // The httpserver is quite dumb and will only serve http, nothing else.
            HttpServer server  = new HttpServer();

            // a controller mode implements a MVC pattern
            // You'll add all controllers to the same module.
            ControllerModule mod = new ControllerModule();
            mod.Add(new UserController(mgr));
            server.Add(mod);

            // file module will be handling files
            FileModule fh = new FileModule("/", Environment.CurrentDirectory);
            fh.AddDefaultMimeTypes();
            server.Add(fh);

            // Let's start pure HTTP, we can also start a HTTPS listener.
            server.Start(IPAddress.Any, 8081);

            Console.ReadLine();
        }
开发者ID:kf6kjg,项目名称:halcyon,代码行数:26,代码来源:Program.cs

示例15: HandledHandlerException

        public void HandledHandlerException()
        {
            using (var server = new HttpServer())
            {
                server.RequestReceived += (s, e) =>
                {
                    throw new Exception();
                };

                server.UnhandledException += (s, e) =>
                {
                    e.Response.Status = "200 OK";

                    using (var writer = new StreamWriter(e.Response.OutputStream))
                    {
                        writer.Write(ErrorMessage);
                    }
                };

                server.Start();

                var request = (HttpWebRequest)WebRequest.Create(
                    String.Format("http://{0}/", server.EndPoint)
                );

                Assert.AreEqual(ErrorMessage, GetResponseFromRequest(request));
            }
        }
开发者ID:smile921,项目名称:hak_blog,代码行数:28,代码来源:ExceptionInHandler.cs


注:本文中的HttpServer.Start方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。