Aegis.Network.Rest.RestAPIServer.ProcessContext C# (CSharp) Метод

ProcessContext() приватный Метод

private ProcessContext ( HttpListenerContext context ) : void
context System.Net.HttpListenerContext
Результат void
        private void ProcessContext(HttpListenerContext context)
        {
            string path, rawUrl = context.Request.RawUrl;
            if (rawUrl == "")
                return;

            string[] splitUrl = rawUrl.Split('?');
            string rawMessage;
            RestRequest request = null;

            //  Path 가져오기
            path = splitUrl[0].ToLower();
            if (path.Length == 0)
                return;

            if (path.Length > 1 && path[path.Length - 1] == '/')
                path = path.Remove(path.Length - 1);

            //  Query / Message Body 가져오기
            if (context.Request.HttpMethod == "GET")
            {
                if (splitUrl.Length > 1)
                {
                    rawMessage = splitUrl[1];
                    request = new RestRequest(HttpMethodType.Get, rawUrl, path, rawMessage);
                }
                else
                    request = new RestRequest(HttpMethodType.Get, rawUrl, path, "");
            }
            if (context.Request.HttpMethod == "POST")
            {
                using (var reader = new StreamReader(context.Request.InputStream, context.Request.ContentEncoding))
                {
                    rawMessage = reader.ReadToEnd();
                    request = new RestRequest(HttpMethodType.Post, rawUrl, path, rawMessage);
                }
            }

            //  Routing
            RequestHandler handler;
            if (request == null)
                return;

            using (_lock.ReaderLock)
            {
                if (_routes.TryGetValue(path, out handler) == false)
                    return;
            }

            SpinWorker.Work(() =>
            {
                handler(request, context.Response);
            });
        }