public WorkerRequest(SimpleHost host, HttpProcessor processor, RequestInfo requestInfo)
        {
            _host = host;
            _processor = processor;
            _requestInfo = requestInfo;

            _responseHeaders = new Dictionary<string, string>();
            _responseBodyBytes = new List<byte[]>();

            ParseRequestHeaders();
        }
        private RequestInfo ParseRequest()
        {
            try
            {
                string requestHeaders = GetRequestHeaders();
                if (!string.IsNullOrEmpty(requestHeaders))
                {
                    Console.WriteLine(requestHeaders);

                    RequestInfo requestInfo = new RequestInfo(requestHeaders);
                    requestInfo.ParseHeaders();
                    IPEndPoint remoteEndPoint = (IPEndPoint)_socket.RemoteEndPoint;
                    requestInfo.RemoteEndPoint = remoteEndPoint;
                    IPEndPoint localEndPoint = (IPEndPoint)_socket.LocalEndPoint;
                    requestInfo.LocalEndPoint = localEndPoint;

                    return requestInfo;
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
            }

            return null;
        }
 private string GetStaticContentType(RequestInfo requestInfo)
 {
     int dotStart = requestInfo.FilePath.LastIndexOf('.') + 1;
     string contentType = string.Empty;
     if (dotStart > 0)
     {
         string extension = requestInfo.FilePath.Substring(dotStart, requestInfo.FilePath.Length - dotStart);
         foreach (KeyValuePair<string, string> fileType in staticFileContentType)
         {
             if (extension.ToLower() == fileType.Key)
             {
                 contentType = fileType.Value;
                 break;
             }
         }
     }
     return contentType;
 }
Exemple #4
0
 public void ProcessRequest(HttpProcessor processor, RequestInfo requestInfo)
 {
     WorkerRequest workerRequest = new WorkerRequest(this, processor, requestInfo);
     HttpRuntime.ProcessRequest(workerRequest);
 }