From 7cea077ab4521cb698ea45fbc7f162083edd96e2 Mon Sep 17 00:00:00 2001 From: qinyouzeng Date: Tue, 7 Jul 2026 09:33:42 +0800 Subject: [PATCH] fix(tsc):ReadAsString change to ReadAsStringAsync --- .../Extensions/StreamExtensions.cs | 32 ++----------------- .../Traceing/Handler/ExceptionHandler.cs | 9 ++---- .../Handler/HttpClientInstrumentHandler.cs | 2 +- 3 files changed, 5 insertions(+), 38 deletions(-) diff --git a/src/Contrib/Masa.Contrib.StackSdks.Tsc.OpenTelemetry/Extensions/StreamExtensions.cs b/src/Contrib/Masa.Contrib.StackSdks.Tsc.OpenTelemetry/Extensions/StreamExtensions.cs index dcaecb4..7b06d41 100644 --- a/src/Contrib/Masa.Contrib.StackSdks.Tsc.OpenTelemetry/Extensions/StreamExtensions.cs +++ b/src/Contrib/Masa.Contrib.StackSdks.Tsc.OpenTelemetry/Extensions/StreamExtensions.cs @@ -57,43 +57,15 @@ internal static class StreamExtensions public static (long, string?) ReadAsString(this Stream stream, Encoding? encoding = null, int bufferSize = 4096) { - if (stream == null || !stream.CanRead || !stream.CanSeek) - return (-1, null); - - var start = stream.Position; try { - var maxBodySize = OpenTelemetryInstrumentationOptions.MaxBodySize; - if (maxBodySize > 0 && stream.Length > maxBodySize) - return (stream.Length, null); - - using var dataStream = new MemoryStream(); - var buffer = new byte[bufferSize]; - stream.Seek(0, SeekOrigin.Begin); - while (true) - { - var count = stream.Read(buffer, 0, bufferSize); - if (count <= 0) - break; - - dataStream.Write(buffer, 0, count); - } - - if (dataStream.Length <= 0) - return (-1, null); - - return (dataStream.Length, (encoding ?? _defaultEncoding).GetString(dataStream.ToArray())); + return ReadAsStringAsync(stream, encoding, bufferSize).ConfigureAwait(false).GetAwaiter().GetResult(); } catch (Exception ex) { OpenTelemetryInstrumentationOptions.Logger?.LogError(ex, "ReadAsString Error"); + return (-1, null); } - finally - { - stream.Seek(start, SeekOrigin.Begin); - } - - return (-1, null); } public static (long, string?) ReadAsBase64(this Stream stream, int bufferSize = 4096) diff --git a/src/Contrib/Masa.Contrib.StackSdks.Tsc.OpenTelemetry/Traceing/Handler/ExceptionHandler.cs b/src/Contrib/Masa.Contrib.StackSdks.Tsc.OpenTelemetry/Traceing/Handler/ExceptionHandler.cs index 78824db..8568726 100644 --- a/src/Contrib/Masa.Contrib.StackSdks.Tsc.OpenTelemetry/Traceing/Handler/ExceptionHandler.cs +++ b/src/Contrib/Masa.Contrib.StackSdks.Tsc.OpenTelemetry/Traceing/Handler/ExceptionHandler.cs @@ -52,7 +52,7 @@ public static string GetIp(IHeaderDictionary headers, IPAddress? deafultIp) public static void SetActivityBody(Activity activity, Stream inputSteam, Encoding? encoding = null) { - (long length, string? body) = inputSteam.ReadAsString(encoding); + (long length, string? body) = inputSteam.ReadAsStringAsync(encoding).ConfigureAwait(false).GetAwaiter().GetResult(); if (length <= 0) return; @@ -65,12 +65,7 @@ public static void SetActivityBody(Activity activity, Stream inputSteam, Encodin activity.SetTag(OpenTelemetryAttributeName.Http.REQUEST_CONTENT_BODY, body); } } - - /// - /// ���ڿӣ�masaauth�������淶���£�֮���е������ٵ����˴� - /// - /// - /// + public static void SetUserInfo(Activity activity, ClaimsPrincipal? claims) { if (claims == null || !claims.Claims.Any()) return; diff --git a/src/Contrib/Masa.Contrib.StackSdks.Tsc.OpenTelemetry/Traceing/Handler/HttpClientInstrumentHandler.cs b/src/Contrib/Masa.Contrib.StackSdks.Tsc.OpenTelemetry/Traceing/Handler/HttpClientInstrumentHandler.cs index d7fa751..cf37cec 100644 --- a/src/Contrib/Masa.Contrib.StackSdks.Tsc.OpenTelemetry/Traceing/Handler/HttpClientInstrumentHandler.cs +++ b/src/Contrib/Masa.Contrib.StackSdks.Tsc.OpenTelemetry/Traceing/Handler/HttpClientInstrumentHandler.cs @@ -90,7 +90,7 @@ private static bool TrySetMultipartFormBody(Activity activity, HttpRequestMessag } var contentStream = item.ReadAsStreamAsync().ConfigureAwait(false).GetAwaiter().GetResult(); - (_, var value) = contentStream.ReadAsString(GetHttpRequestMessageEncoding(httpRequest)); + (_, var value) = contentStream.ReadAsStringAsync(GetHttpRequestMessageEncoding(httpRequest)).ConfigureAwait(false).GetAwaiter().GetResult(); formItems.Add($"{key}={value ?? string.Empty}"); }