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);
}