Exemple #1
0
        public IgniteRequest Parse(String rawRequest)
        {
            //Console.Write("IgniteRequestParser@Parse | Starting parsing of request {0}", rawRequest);


            String[] hBPartials = rawRequest.Split(ParserConstants.REQUEST_HEADERS_DELIMETER);

            String[] partials = hBPartials[0].Split(ParserConstants.REQUEST_META_DELIMETER);

            //Console.WriteLine("IgniteRequestParser@Parse | {0}, {1}", hBPartials[0]);
            // Console.WriteLine("LENGTH {0}", partials[4]);

            String[] coreMetaPart = partials[0].Split(" ");

            StringBuilder rawHeaders = new StringBuilder();

            for (int i = 1; i < partials.Length; i++)
            {
                rawHeaders.Append(partials[i]);

                if (partials.Length - 1 != i)
                {
                    rawHeaders.Append(HeadersParser.HEADERS_DELIMETER);
                }
            }

            logger.debug("IgniteRequestParser@Parse | raw core meta part {0}, {1}, {2}", coreMetaPart[0], coreMetaPart[1], coreMetaPart[2]);

            logger.debug("IgniteRequestParser@Parse | headers part \n{0}", rawHeaders.ToString());


            Dictionary <String, String> headers = headersParser.Parse(rawHeaders.ToString());
            //Console.WriteLine("IgniteRequestParser@Parse |  parsed headers {0}", headers);

            IgniteRequest request = IgniteRequestFactory.GetInstance();

            request.setMethod(coreMetaPart[0]);
            request.setRoute(coreMetaPart[1]);
            request.setHttpVersion(coreMetaPart[2]);
            request.setHeaders(headers);


            // if get request skip body parsing
            if (!coreMetaPart[0].Equals(HttpMethod.GET))
            {
                String rawBody = hBPartials[1];


                logger.debug("IgniteRequestParser@Parse | body part {0}", rawBody);
                Dictionary <String, String> body = bodyParser.Parse(rawBody);
                //Console.WriteLine("IgniteRequestParser@Parse |  parsed body {0}", body);
                request.setBody(body);
            }

            //Console.Write("IgniteRequestParser@Parse | created request {0}", request);
            return(request);
        }