public static void WriteResponse(this HttpMessageWriter writer, StatusCodes statusCodes, ContentType contentType, byte[] content)
 {
     writer.WriteStatusLine(statusCodes);
     writer.WriteAuxiliaryHeaders();
     writer.WriteContentType(contentType);
     writer.WriteContentLength(content.Length);
     writer.WriteCRLF();
     writer.Write(content);
 }
 public static void WriteNotFinishedResponse(this HttpMessageWriter writer, StatusCodes statusCode, ContentType contentType)
 {
     writer.WriteStatusLine(statusCode);
     writer.WriteAuxiliaryHeaders();
     if (contentType != ContentType.None)
     {
         writer.WriteContentType(contentType);
     }
     else
     {
         writer.WriteContentLength(0);
     }
 }
Exemple #3
0
        void IHttpServerAgent.HandleRequest(BaseConnection c, HttpMessageReader httpReader, ArraySegment <byte> httpContent)
        {
            if (httpReader.Method != Methods.Get)
            {
                var writer = new HttpMessageWriter();
                writer.WriteResponse(StatusCodes.NotAcceptable);

                httpServer.SendResponse(c, writer);
            }
            else
            {
                if (httpReader.RequestUri.Equals(uri1))
                {
                    var writer = new HttpMessageWriter();

                    writer.WriteStatusLine(StatusCodes.MovedPermanently);
                    writer.WriteContentLength(0);
                    writer.WriteLocation(c.LocalEndPoint.Protocol == ServerProtocol.Tcp, httpReader.Host.Host, httpReader.Host.Port, uri2);
                    writer.WriteCRLF();

                    httpServer.SendResponse(c, writer);
                }
                else
                {
                    var rawFile = GetFile(httpReader);

                    if (rawFile.HasValue == false)
                    {
                        var writer = new HttpMessageWriter();
                        writer.WriteResponse(StatusCodes.NotFound);

                        httpServer.SendResponse(c, writer);
                    }
                    else
                    {
                        var file = rawFile.Value;

                        var writer = new HttpMessageWriter();
                        writer.WriteStatusLine(StatusCodes.OK);
                        writer.WriteContentType(file.ContentType);
                        writer.WriteContentLength(file.Content.Length);
                        writer.WriteCRLF();

                        httpServer.SendResponse(c, writer);

                        httpServer.SendResponse(c, new ArraySegment <byte>(file.Content));
                    }
                }
            }
        }