From 15abbe660d792b04248fd9cae186fd567fbb62c0 Mon Sep 17 00:00:00 2001 From: Georgi Hristov Date: Sun, 21 Jun 2026 08:54:47 +0300 Subject: [PATCH] fix(middleware): track actual response size --- .../Middleware/ResponseBodyCaptureTests.cs | 3 +++ DebugProbe.AspNetCore/Middleware/DebugProbeMiddleware.cs | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/DebugProbe.AspNetCore.Tests/Middleware/ResponseBodyCaptureTests.cs b/DebugProbe.AspNetCore.Tests/Middleware/ResponseBodyCaptureTests.cs index 08abaf2..17f338b 100644 --- a/DebugProbe.AspNetCore.Tests/Middleware/ResponseBodyCaptureTests.cs +++ b/DebugProbe.AspNetCore.Tests/Middleware/ResponseBodyCaptureTests.cs @@ -41,6 +41,7 @@ public async Task Handles_large_response_within_limit() await app.Client.GetAsync("/large"); Assert.Equal(body, app.SingleEntry.ResponseBody); + Assert.Equal(body.Length, app.SingleEntry.ResponseSize); } [Fact] @@ -54,6 +55,7 @@ public async Task Handles_binary_response_safely() await app.Client.GetAsync("/binary"); Assert.Equal("[Body not captured: non-text content]", app.SingleEntry.ResponseBody); + Assert.Equal(4, app.SingleEntry.ResponseSize); } [Fact] @@ -69,5 +71,6 @@ public async Task Validates_bounded_response_capture_behavior() var entry = app.SingleEntry; Assert.Equal(body, await response.Content.ReadAsStringAsync()); Assert.Equal("[Body too large]", entry.ResponseBody); + Assert.Equal(body.Length, entry.ResponseSize); } } diff --git a/DebugProbe.AspNetCore/Middleware/DebugProbeMiddleware.cs b/DebugProbe.AspNetCore/Middleware/DebugProbeMiddleware.cs index c4c80d4..f405cee 100644 --- a/DebugProbe.AspNetCore/Middleware/DebugProbeMiddleware.cs +++ b/DebugProbe.AspNetCore/Middleware/DebugProbeMiddleware.cs @@ -125,7 +125,7 @@ public async Task Invoke(HttpContext context, DebugEntryStore store) entry.RequestSize = context.Request.ContentLength ?? Encoding.UTF8.GetByteCount(requestBody); - entry.ResponseSize = Encoding.UTF8.GetByteCount(responseBody); + entry.ResponseSize = responseCapture.TotalBytesWritten; entry.RequestHeaders = context.Request.Headers.ToDictionary(