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(); }
// 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"); } }
// 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(); }