コード例 #1
0
        public async Task StartAsync(string port, RouteRepository routeRepository)
        {
            this.httpListener.Prefixes.Add(string.Format("http://localhost:{0}/", port));
            try
            {
                this.httpListener.Start();
            }
            catch (Exception e)
            {
                System.Net.HttpListenerException ex = (System.Net.HttpListenerException)e;
            }

            Console.WriteLine("Listening for requests on port {0}.", port);

            Request request = await GetNextRequestAsync();

            while (request != null)
            {
                Console.WriteLine("{0}: {1} {2}", DateTime.Now, request.Method, request.Endpoint);

                if (!await TryRespondAsync(request, routeRepository))
                {
                    Console.WriteLine("HTTP 404 for {0}.", request.Endpoint);
                }

                request = await GetNextRequestAsync();
            }
        }
コード例 #2
0
        private bool TryRespond(Request request, RouteRepository routeRepository)
        {
            if (!routeRepository.Get.ContainsKey(request.Endpoint))
                return false;

            routeRepository.Get[request.Endpoint](request, new Response(context.Response));
            return true;
        }
コード例 #3
0
        private bool TryRespond(Request request, RouteRepository routeRepository)
        {
            if (!routeRepository.Get.ContainsKey(request.Endpoint))
            {
                return(false);
            }

            routeRepository.Get[request.Endpoint](request, new Response(context.Response));
            return(true);
        }
コード例 #4
0
ファイル: Listener.cs プロジェクト: xulong2005/PDFCreator
        private async Task <bool> TryRespondAsync(Request request, RouteRepository routeRepository)
        {
            Dictionary <string, Action <Request, Response> > routes = routeRepository.GetRoutes(request.Method);

            if (routes == null || !routes.ContainsKey(request.Endpoint))
            {
                return(false);
            }

            await Task.Run(() =>
            {
                routes[request.Endpoint](request, new Response(context.Response));
            });

            return(true);
        }
コード例 #5
0
        public void Start(string port, RouteRepository routeRepository)
        {
            this.httpListener.Prefixes.Add(string.Format("http://localhost:{0}/", port));
            this.httpListener.Start();

            Console.WriteLine("Listening for requests on port {0}.", port);

            Request request;

            while (TryGetNextRequest(out request))
            {
                Console.WriteLine("{0}: {1}", DateTime.Now, request.Endpoint);

                if (!TryRespond(request, routeRepository))
                    Console.WriteLine("No handler specified for endpoint {0}.", request.Endpoint);
            }
        }
コード例 #6
0
        public void Start(string port, RouteRepository routeRepository)
        {
            this.httpListener.Prefixes.Add(string.Format("http://localhost:{0}/", port));
            this.httpListener.Start();

            Console.WriteLine("Listening for requests on port {0}.", port);

            Request request;

            while (TryGetNextRequest(out request))
            {
                Console.WriteLine("{0}: {1}", DateTime.Now, request.Endpoint);

                if (!TryRespond(request, routeRepository))
                {
                    Console.WriteLine("No handler specified for endpoint {0}.", request.Endpoint);
                }
            }
        }
コード例 #7
0
ファイル: Server.cs プロジェクト: jamesseanwright/simple-http
 public Server(Listener listener, RouteRepository routeRepository)
 {
     this.listener = listener;
     RouteRepository = routeRepository;
 }
コード例 #8
0
 public Server(Listener listener, RouteRepository routeRepository)
 {
     this.listener   = listener;
     RouteRepository = routeRepository;
 }