Example #1
0
 private void ParsePostValues(Request request)
 {
     if (request.GetHeader("content-type") == _formDataContentType)
     {
         request.Values = ParseFormData(request.Body, request.Values);
     }
 }
Example #2
0
        public Request ParseStringToRequest(string requestHeaders)
        {
            string[] reqParts = requestHeaders.Split(Environment.NewLine.ToCharArray());
            if (reqParts.Length > 0 && !String.IsNullOrEmpty(reqParts[0]))
            {
                string firstLine = reqParts[0];
                reqParts[0] = null;
                string[] firstLineParts = firstLine.Split(' ');
                Request request = new Request();

                request.Method = firstLineParts[0];
                request.Url = firstLineParts[1];
                request.HTTPVersion = firstLineParts[2];

                foreach (string line in reqParts)
                {
                    if (!String.IsNullOrEmpty(line))
                    {
                        if (!line.Contains(":"))
                            break;

                        string[] headerParts = line.Split(new char[] { ':' }, 2);
                        request.AddHeader(headerParts[0].Trim().ToLower(), headerParts[1].Trim());
                    }
                }

                if (request.GetHeader("host") != null)
                {
                    string hostHeader = request.GetHeader("host");
                    if (hostHeader.Contains(":"))
                    {
                        string[] hostParts = hostHeader.Split(':');
                        request.Host = hostParts[0];
                        request.Port = Convert.ToInt32(hostParts[1]);
                    }
                    else
                    {
                        request.Host = hostHeader;
                        request.Port = 80;
                    }
                }

                return request;
            }
            return null;
        }