Ejemplo n.º 1
0
        public void HandleRequest(HttpListenerRequest request, HttpListenerResponse response)
        {
            Files    = new List <UploadedFile>();
            Request  = request;
            Response = response;

            if (string.Compare(Request.HttpMethod, "POST", true) == 0)
            {
                var content = readPostContent(request);

                Action action = () =>
                {
                    RawPostData = content.ToArray();
                    ParseAndHandleRequest();
                };

                HttpHandlingTask.HandleRequestWithinExceptionHandler(action, Response);
                return;
            }

            ParseAndHandleRequest();
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Connections the accepted.
        /// </summary>
        /// <param name="result">The result.</param>
        private void ConnectionAccepted(IAsyncResult result)
        {
            try
            {
                var context = m_Listener.EndGetContext(result);

                if (context == null)
                {
                    return;
                }

                var beginTime = Stopwatch.GetTimestamp();
                m_Listener.BeginGetContext(ConnectionAccepted, null);


                var handler = FindBestMatch(context.Request.Url.AbsolutePath);

                if (handler == null)
                {
                    respond404NotFound(context);
                    return;
                }

                var task = new HttpHandlingTask(handler, context, beginTime);

                ThreadPool.QueueUserWorkItem((x) => { task.Execute(); });
            }
            catch (ObjectDisposedException)
            {
                m_Logger.Warn("Http server disposed. Shutdown server");
            }
            catch (Exception e)
            {
                m_Logger.Warn("Shutdown server", e);
            }
        }