mirror of
https://github.com/PowerShell/PowerShell
synced 2026-06-08 12:12:50 +00:00
Improve debug logging of Web cmdlet request and response (#25479)
This commit is contained in:
+36
-30
@@ -567,29 +567,10 @@ namespace Microsoft.PowerShell.Commands
|
||||
FillRequestStream(request);
|
||||
try
|
||||
{
|
||||
long requestContentLength = request.Content is null ? 0 : request.Content.Headers.ContentLength.Value;
|
||||
|
||||
string reqVerboseMsg = string.Format(
|
||||
CultureInfo.CurrentCulture,
|
||||
WebCmdletStrings.WebMethodInvocationVerboseMsg,
|
||||
request.Version,
|
||||
request.Method,
|
||||
requestContentLength);
|
||||
|
||||
WriteVerbose(reqVerboseMsg);
|
||||
|
||||
_maximumRedirection = WebSession.MaximumRedirection;
|
||||
|
||||
using HttpResponseMessage response = GetResponse(client, request, handleRedirect);
|
||||
|
||||
string contentType = ContentHelper.GetContentType(response);
|
||||
long? contentLength = response.Content.Headers.ContentLength;
|
||||
string respVerboseMsg = contentLength is null
|
||||
? string.Format(CultureInfo.CurrentCulture, WebCmdletStrings.WebResponseNoSizeVerboseMsg, response.Version, contentType)
|
||||
: string.Format(CultureInfo.CurrentCulture, WebCmdletStrings.WebResponseVerboseMsg, response.Version, contentLength, contentType);
|
||||
|
||||
WriteVerbose(respVerboseMsg);
|
||||
|
||||
bool _isSuccess = response.IsSuccessStatusCode;
|
||||
|
||||
// Check if the Resume range was not satisfiable because the file already completed downloading.
|
||||
@@ -638,6 +619,9 @@ namespace Microsoft.PowerShell.Commands
|
||||
string detailMsg = string.Empty;
|
||||
try
|
||||
{
|
||||
string contentType = ContentHelper.GetContentType(response);
|
||||
long? contentLength = response.Content.Headers.ContentLength;
|
||||
|
||||
// We can't use ReadAsStringAsync because it doesn't have per read timeouts
|
||||
TimeSpan perReadTimeout = ConvertTimeoutSecondsToTimeSpan(OperationTimeoutSeconds);
|
||||
string characterSet = WebResponseHelper.GetCharacterSet(response);
|
||||
@@ -1296,7 +1280,40 @@ namespace Microsoft.PowerShell.Commands
|
||||
_cancelToken = new CancellationTokenSource();
|
||||
try
|
||||
{
|
||||
long requestContentLength = request.Content is null ? 0 : request.Content.Headers.ContentLength.Value;
|
||||
|
||||
string reqVerboseMsg = string.Format(
|
||||
CultureInfo.CurrentCulture,
|
||||
WebCmdletStrings.WebMethodInvocationVerboseMsg,
|
||||
request.Version,
|
||||
request.Method,
|
||||
requestContentLength);
|
||||
|
||||
WriteVerbose(reqVerboseMsg);
|
||||
|
||||
string reqDebugMsg = string.Format(
|
||||
CultureInfo.CurrentCulture,
|
||||
WebCmdletStrings.WebRequestDebugMsg,
|
||||
request.ToString());
|
||||
|
||||
WriteDebug(reqDebugMsg);
|
||||
|
||||
response = client.SendAsync(currentRequest, HttpCompletionOption.ResponseHeadersRead, _cancelToken.Token).GetAwaiter().GetResult();
|
||||
|
||||
string contentType = ContentHelper.GetContentType(response);
|
||||
long? contentLength = response.Content.Headers.ContentLength;
|
||||
string respVerboseMsg = contentLength is null
|
||||
? string.Format(CultureInfo.CurrentCulture, WebCmdletStrings.WebResponseNoSizeVerboseMsg, response.Version, contentType)
|
||||
: string.Format(CultureInfo.CurrentCulture, WebCmdletStrings.WebResponseVerboseMsg, response.Version, contentLength, contentType);
|
||||
|
||||
WriteVerbose(respVerboseMsg);
|
||||
|
||||
string resDebugMsg = string.Format(
|
||||
CultureInfo.CurrentCulture,
|
||||
WebCmdletStrings.WebResponseDebugMsg,
|
||||
response.ToString());
|
||||
|
||||
WriteDebug(resDebugMsg);
|
||||
}
|
||||
catch (TaskCanceledException ex)
|
||||
{
|
||||
@@ -1361,17 +1378,6 @@ namespace Microsoft.PowerShell.Commands
|
||||
{
|
||||
FillRequestStream(requestWithoutRange);
|
||||
|
||||
long requestContentLength = requestWithoutRange.Content is null ? 0 : requestWithoutRange.Content.Headers.ContentLength.Value;
|
||||
|
||||
string reqVerboseMsg = string.Format(
|
||||
CultureInfo.CurrentCulture,
|
||||
WebCmdletStrings.WebMethodInvocationVerboseMsg,
|
||||
requestWithoutRange.Version,
|
||||
requestWithoutRange.Method,
|
||||
requestContentLength);
|
||||
|
||||
WriteVerbose(reqVerboseMsg);
|
||||
|
||||
response.Dispose();
|
||||
response = GetResponse(client, requestWithoutRange, handleRedirect);
|
||||
}
|
||||
|
||||
@@ -164,7 +164,7 @@
|
||||
</data>
|
||||
<data name="InsecureRedirection" xml:space="preserve">
|
||||
<value>Cannot follow an insecure redirection by default. Reissue the command specifying the -AllowInsecureRedirect switch. </value>
|
||||
</data>
|
||||
</data>
|
||||
<data name="KeysWithDifferentCasingInJsonString" xml:space="preserve">
|
||||
<value>Cannot convert the JSON string because it contains keys with different casing. Please use the -AsHashTable switch instead. The key that was attempted to be added to the existing key '{0}' was '{1}'.</value>
|
||||
</data>
|
||||
@@ -243,6 +243,12 @@
|
||||
<data name="WebResponseVerboseMsg" xml:space="preserve">
|
||||
<value>Received HTTP/{0} {1}-byte response of content type {2}</value>
|
||||
</data>
|
||||
<data name="WebRequestDebugMsg" xml:space="preserve">
|
||||
<value>Request {0}</value>
|
||||
</data>
|
||||
<data name="WebResponseDebugMsg" xml:space="preserve">
|
||||
<value>Response {0}</value>
|
||||
</data>
|
||||
<data name="WebResponseNoSizeVerboseMsg" xml:space="preserve">
|
||||
<value>Received HTTP/{0} response of content type {1} of unknown size</value>
|
||||
</data>
|
||||
|
||||
Reference in New Issue
Block a user