/
githubmirror
/
aspnetcore
Обзор
Документация
Войти
/
githubmirror
/
aspnetcore
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
src/Servers/Kestrel/shared/test/TestApp.cs
77 строк
2 KB
William Godbe
Rename Microsoft.Aspnetcore.Testing to Microsoft.AspNetCore.InternalTesting (#51713)
02 ноя 2023, 03:15
Не верифицирован
02 ноя 2023, 03:15
fc8deca
Код
Авторство
О чём код?
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. using System; using System.Globalization; using System.IO; using System.Threading.Tasks; using Microsoft.AspNetCore.Http; namespace Microsoft.AspNetCore.InternalTesting; public static class TestApp { public static async Task EchoApp(HttpContext httpContext) { var request = httpContext.Request; var response = httpContext.Response; var buffer = new byte[httpContext.Request.ContentLength ?? 0]; if (buffer.Length > 0) { await request.Body.FillBufferUntilEndAsync(buffer).DefaultTimeout(); await response.Body.WriteAsync(buffer, 0, buffer.Length); } } public static async Task EchoAppChunked(HttpContext httpContext) { var request = httpContext.Request; var response = httpContext.Response; var data = new MemoryStream(); await request.Body.CopyToAsync(data); var bytes = data.ToArray(); response.Headers.ContentLength = bytes.Length; await response.Body.WriteAsync(bytes, 0, bytes.Length); } public static Task EmptyApp(HttpContext httpContext) { return Task.CompletedTask; } public static async Task EchoAppPipeWriter(HttpContext httpContext) { var request = httpContext.Request; var response = httpContext.Response; var buffer = new byte[httpContext.Request.ContentLength ?? 0]; if (buffer.Length > 0) { await request.Body.FillBufferUntilEndAsync(buffer).DefaultTimeout(); await response.StartAsync(); var memory = response.BodyWriter.GetMemory(buffer.Length); buffer.CopyTo(memory); response.BodyWriter.Advance(buffer.Length); await response.BodyWriter.FlushAsync(); } } public static async Task EchoAppPipeWriterChunked(HttpContext httpContext) { var request = httpContext.Request; var response = httpContext.Response; var data = new MemoryStream(); await request.Body.CopyToAsync(data); var bytes = data.ToArray(); response.Headers.ContentLength = bytes.Length; await response.StartAsync(); var memory = response.BodyWriter.GetMemory(bytes.Length); bytes.CopyTo(memory); response.BodyWriter.Advance(bytes.Length); await response.BodyWriter.FlushAsync(); } }