diff --git a/dotnet/src/webdriver/Remote/HttpCommandExecutor.cs b/dotnet/src/webdriver/Remote/HttpCommandExecutor.cs index 22d163641ff35..bcf345a10c619 100644 --- a/dotnet/src/webdriver/Remote/HttpCommandExecutor.cs +++ b/dotnet/src/webdriver/Remote/HttpCommandExecutor.cs @@ -440,8 +440,6 @@ public DiagnosticsHttpHandler(HttpMessageHandler messageHandler, ILogger logger) /// The http response message content. protected override async Task SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) { - var responseTask = base.SendAsync(request, cancellationToken); - StringBuilder requestLogMessageBuilder = new(); requestLogMessageBuilder.AppendFormat(">> {0} RequestUri: {1}, Content: {2}, Headers: {3}", request.Method, @@ -451,20 +449,30 @@ protected override async Task SendAsync(HttpRequestMessage if (request.Content != null) { +#if NET8_0_OR_GREATER + var requestContent = await request.Content.ReadAsStringAsync(cancellationToken).ConfigureAwait(false); +#else var requestContent = await request.Content.ReadAsStringAsync().ConfigureAwait(false); +#endif requestLogMessageBuilder.AppendFormat("{0}{1}", Environment.NewLine, requestContent); } _logger.Trace(requestLogMessageBuilder.ToString()); - var response = await responseTask.ConfigureAwait(false); + var response = await base.SendAsync(request, cancellationToken).ConfigureAwait(false); StringBuilder responseLogMessageBuilder = new(); + responseLogMessageBuilder.AppendFormat("<< StatusCode: {0}, ReasonPhrase: {1}, Content: {2}, Headers: {3}", (int)response.StatusCode, response.ReasonPhrase, response.Content, response.Headers?.Count()); if (!response.IsSuccessStatusCode && response.Content != null) { +#if NET8_0_OR_GREATER + var responseContent = await response.Content.ReadAsStringAsync(cancellationToken).ConfigureAwait(false); +#else var responseContent = await response.Content.ReadAsStringAsync().ConfigureAwait(false); +#endif + responseLogMessageBuilder.AppendFormat("{0}{1}", Environment.NewLine, responseContent); }