// Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. using Microsoft.AspNet.Builder; using Microsoft.AspNet.Http; using Microsoft.Framework.Logging; using Microsoft.Net.Http.Headers; namespace ServerComparison.TestSites { public class StartupResponses { public void Configure(IApplicationBuilder app, ILoggerFactory loggerFactory) { loggerFactory.AddConsole(minLevel: LogLevel.Warning); app.Map("/contentlength", subApp => { subApp.Run(context => { context.Response.ContentLength = 14; return context.Response.WriteAsync("Content Length"); }); }); app.Map("/connectionclose", subApp => { subApp.Run(async context => { context.Response.Headers[HeaderNames.Connection] = "close"; await context.Response.WriteAsync("Connnection Close"); await context.Response.Body.FlushAsync(); // Bypass IIS write-behind buffering }); }); app.Map("/chunked", subApp => { subApp.Run(async context => { await context.Response.WriteAsync("Chunked"); await context.Response.Body.FlushAsync(); // Bypass IIS write-behind buffering }); }); app.Map("/manuallychunked", subApp => { subApp.Run(context => { context.Response.Headers[HeaderNames.TransferEncoding] = "chunked"; return context.Response.WriteAsync("10\r\nManually Chunked\r\n0\r\n\r\n"); }); }); app.Run(context => { return context.Response.WriteAsync("Running"); }); } } }