void WriteResponseForPostJson(HttpRequest request, HttpResponse response)
        {
            // read request json
            int requestedCount;
            using (var dom = JsonObject.Parse(request.Body)) {
                requestedCount = (int)dom["Count"];
            }

            // write response JSON
            var jsonWriter = new JsonWriter<ResponseFormatter>(new ResponseFormatter(response.Body), prettyPrint: false);
            jsonWriter.WriteObjectStart();
            jsonWriter.WriteArrayStart();
            for (int i = 0; i < requestedCount; i++)
            {
                jsonWriter.WriteString("hello!");
            }
            jsonWriter.WriteArrayEnd();
            jsonWriter.WriteObjectEnd();

            // write headers
            var headers = new ResponseFormatter(response.Headers);
            headers.AppendHttpStatusLine(HttpVersion.V1_1, 200, new Utf8String("OK"));
            headers.Append("Content-Length : ");
            headers.Append(response.Body.CommitedBytes);
            headers.AppendHttpNewLine();
            headers.Append("Content-Type : text/plain; charset=UTF-8");
            headers.AppendHttpNewLine();
            headers.Append("Server : .NET Core Sample Server");
            headers.AppendHttpNewLine();
            headers.Append("Date : ");
            headers.Append(DateTime.UtcNow, 'R');
            headers.AppendHttpNewLine();
            headers.AppendHttpNewLine();
        }
        static void WriteResponseForHelloWorld(HttpRequest request, HttpResponse response)
        {
            var body = new ResponseFormatter(response.Body);
            body.Append("Hello, World");

            var headers = new ResponseFormatter(response.Headers);
            headers.AppendHttpStatusLine(HttpVersion.V1_1, 200, new Utf8String("OK"));
            headers.Append("Content-Length : ");
            headers.Append(response.Body.CommitedBytes);
            headers.AppendHttpNewLine();
            headers.Append("Content-Type : text/plain; charset=UTF-8");
            headers.AppendHttpNewLine();
            headers.Append("Server : .NET Core Sample Server");
            headers.AppendHttpNewLine();
            headers.Append("Date : ");
            headers.Append(DateTime.UtcNow, 'R');
            headers.AppendHttpNewLine();
            headers.AppendHttpNewLine();
        }
Beispiel #3
0
        // TODO: this is not a very general purpose routine. Maybe should not be in this base class?
        protected static void WriteCommonHeaders(
            HttpResponse response,
            HttpVersion version,
            int statuCode,
            string reasonCode,
            bool keepAlive)
        {
            var currentTime = DateTime.UtcNow;
            var formatter   = new ResponseFormatter(response, formatBody: false);

            formatter.AppendHttpStatusLine(version, statuCode, new Utf8String(reasonCode));
            formatter.Append(new Utf8String("Date : ")); formatter.Append(currentTime, 'R');
            formatter.AppendHttpNewLine();
            formatter.Append("Server : .NET Core Sample Server");
            formatter.AppendHttpNewLine();
            formatter.Append("Content-Type : text/html; charset=UTF-8");
            formatter.AppendHttpNewLine();

            if (!keepAlive)
            {
                formatter.Append("Connection : close");
            }
        }
Beispiel #4
0
        // TODO: this is not a very general purpose routine. Maybe should not be in this base class?
        protected static void WriteCommonHeaders(
            HttpResponse response,
            HttpVersion version,
            int statuCode,
            string reasonCode,
            bool keepAlive)
        {
            var currentTime = DateTime.UtcNow;
            var formatter = new ResponseFormatter(response.Headers);
            formatter.AppendHttpStatusLine(version, statuCode, new Utf8String(reasonCode));
            formatter.Append(new Utf8String("Date : ")); formatter.Append(currentTime, 'R');
            formatter.AppendHttpNewLine();
            formatter.Append("Server : .NET Core Sample Server");
            formatter.AppendHttpNewLine();
            formatter.Append("Content-Type : text/html; charset=UTF-8");
            formatter.AppendHttpNewLine();

            if (!keepAlive)
            {
                formatter.Append("Connection : close");
            }
        }
        static void WriteResponseForGetTime(HttpRequest request, HttpResponse response)
        {
            var body = new ResponseFormatter(response.Body);
            body.Format(@"<html><head><title>Time</title></head><body>{0:O}</body></html>", DateTime.UtcNow);

            WriteCommonHeaders(response, HttpVersion.V1_1, 200, "OK", keepAlive: false);
            var headers = new ResponseFormatter(response.Headers);
            headers.Append("Content-Length : ");
            headers.Append(response.Body.CommitedBytes);
            headers.AppendHttpNewLine();
            headers.AppendHttpNewLine();
        }