private void DoWork() { try { SimplifiedClientRequest request = null; do { string requestString = ReadRequest(); if (!String.IsNullOrEmpty(requestString)) { request = SimplifiedClientRequest.ParseRequest(requestString); SimplifiedServerResponse response = GenerateResponse(request); WriteResponse(response); Logger.WriteMessage(String.Format("{0} {1} - Status: {2}", request.RequestType, request.Url, response.ResponseStatus), LogType.SUCCESS); } else { request = null; } }while (request != null && request.Connection == ConnectionType.KEEP_ALIVE); } catch (Exception ex) { Logger.WriteException(ex); } finally { client.Close(); } }
private SimplifiedServerResponse GenerateNotImplementedResponse(SimplifiedClientRequest request) { SimplifiedServerResponse response = GenerateHeadResponse(request); response.ResponseStatus = 501; return(response); }
private void WriteResponse(SimplifiedServerResponse response) { byte[] responseBytes = Encoding.ASCII.GetBytes(response.ToString()); client.Send(responseBytes); if (response.Body != null) { client.Send(response.Body); } }
private SimplifiedServerResponse GenerateGetResponse(SimplifiedClientRequest request) { SimplifiedServerResponse response = GenerateHeadResponse(request); if (ServerFileHelper.FileExists(request.Url)) { response.Body = ServerFileHelper.GetFileContent(request.Url); } return(response); }
private SimplifiedServerResponse GenerateDeleteResponse(SimplifiedClientRequest request) { SimplifiedServerResponse response = GenerateHeadResponse(request); if (ServerFileHelper.FileExists(request.Url)) { response.ResponseStatus = 202; ServerFileHelper.DeleteFile(request.Url); } return(response); }
private SimplifiedServerResponse GenerateHeadResponse(SimplifiedClientRequest request) { SimplifiedServerResponse response = new SimplifiedServerResponse() { HttpVersion = request.HttpVersion, Connection = request.Connection, Cookies = request.Cookies }; if (ServerFileHelper.FileExists(request.Url)) { response.ResponseStatus = 200; response.ContentType = ServerFileHelper.GetContentType(request.Url); response.LastModified = ServerFileHelper.GetModifyDate(request.Url); } else { response.ResponseStatus = 404; } return(response); }
private SimplifiedServerResponse GeneratePutResponse(SimplifiedClientRequest request) { SimplifiedServerResponse response = new SimplifiedServerResponse() { HttpVersion = request.HttpVersion, ContentLocation = request.Url, Connection = request.Connection, Cookies = request.Cookies }; if (ServerFileHelper.FileExists(request.Url)) { response.ResponseStatus = 204; } else { response.ResponseStatus = 201; ServerFileHelper.WriteFileContent(request.Url, request.MessageBody); } return(response); }