@@ -280,10 +280,7 @@ internal virtual void FillRequestStream(HttpRequestMessage request)
280
280
try
281
281
{
282
282
// open the input file
283
- using ( FileStream fs = new FileStream ( InFile , FileMode . Open ) )
284
- {
285
- SetRequestContent ( request , fs ) ;
286
- }
283
+ SetRequestContent ( request , new FileStream ( InFile , FileMode . Open ) ) ;
287
284
}
288
285
catch ( UnauthorizedAccessException )
289
286
{
@@ -331,55 +328,57 @@ protected override void ProcessRecord()
331
328
// Set cmdlet context for write progress
332
329
ValidateParameters ( ) ;
333
330
PrepareSession ( ) ;
334
- HttpClient client = GetHttpClient ( ) ;
335
- HttpRequestMessage request = GetRequest ( Uri ) ;
336
- FillRequestStream ( request ) ;
337
331
338
- try
332
+ using ( HttpClient client = GetHttpClient ( ) )
333
+ using ( HttpRequestMessage request = GetRequest ( Uri ) )
339
334
{
340
- long requestContentLength = 0 ;
341
- if ( request . Content != null )
342
- requestContentLength = request . Content . Headers . ContentLength . Value ;
343
-
344
- string reqVerboseMsg = String . Format ( CultureInfo . CurrentCulture ,
345
- "{0} {1} with {2}-byte payload" ,
346
- request . Method ,
347
- request . RequestUri ,
348
- requestContentLength ) ;
349
- WriteVerbose ( reqVerboseMsg ) ;
350
-
351
- HttpResponseMessage response = GetResponse ( client , request ) ;
352
- response . EnsureSuccessStatusCode ( ) ;
353
-
354
- string contentType = ContentHelper . GetContentType ( response ) ;
355
- string respVerboseMsg = string . Format ( CultureInfo . CurrentCulture ,
356
- "received {0}-byte response of content type {1}" ,
357
- response . Content . Headers . ContentLength ,
358
- contentType ) ;
359
- WriteVerbose ( respVerboseMsg ) ;
360
- ProcessResponse ( response ) ;
361
- UpdateSession ( response ) ;
362
-
363
- // If we hit our maximum redirection count, generate an error.
364
- // Errors with redirection counts of greater than 0 are handled automatically by .NET, but are
365
- // impossible to detect programmatically when we hit this limit. By handling this ourselves
366
- // (and still writing out the result), users can debug actual HTTP redirect problems.
367
- if ( WebSession . MaximumRedirection == 0 ) // Indicate "HttpClientHandler.AllowAutoRedirect == false"
335
+ FillRequestStream ( request ) ;
336
+ try
368
337
{
369
- if ( response . StatusCode == HttpStatusCode . Found ||
370
- response . StatusCode == HttpStatusCode . Moved ||
371
- response . StatusCode == HttpStatusCode . MovedPermanently )
338
+ long requestContentLength = 0 ;
339
+ if ( request . Content != null )
340
+ requestContentLength = request . Content . Headers . ContentLength . Value ;
341
+
342
+ string reqVerboseMsg = String . Format ( CultureInfo . CurrentCulture ,
343
+ "{0} {1} with {2}-byte payload" ,
344
+ request . Method ,
345
+ request . RequestUri ,
346
+ requestContentLength ) ;
347
+ WriteVerbose ( reqVerboseMsg ) ;
348
+
349
+ HttpResponseMessage response = GetResponse ( client , request ) ;
350
+ response . EnsureSuccessStatusCode ( ) ;
351
+
352
+ string contentType = ContentHelper . GetContentType ( response ) ;
353
+ string respVerboseMsg = string . Format ( CultureInfo . CurrentCulture ,
354
+ "received {0}-byte response of content type {1}" ,
355
+ response . Content . Headers . ContentLength ,
356
+ contentType ) ;
357
+ WriteVerbose ( respVerboseMsg ) ;
358
+ ProcessResponse ( response ) ;
359
+ UpdateSession ( response ) ;
360
+
361
+ // If we hit our maximum redirection count, generate an error.
362
+ // Errors with redirection counts of greater than 0 are handled automatically by .NET, but are
363
+ // impossible to detect programmatically when we hit this limit. By handling this ourselves
364
+ // (and still writing out the result), users can debug actual HTTP redirect problems.
365
+ if ( WebSession . MaximumRedirection == 0 ) // Indicate "HttpClientHandler.AllowAutoRedirect == false"
372
366
{
373
- ErrorRecord er = new ErrorRecord ( new InvalidOperationException ( ) , "MaximumRedirectExceeded" , ErrorCategory . InvalidOperation , request ) ;
374
- er . ErrorDetails = new ErrorDetails ( WebCmdletStrings . MaximumRedirectionCountExceeded ) ;
375
- WriteError ( er ) ;
367
+ if ( response . StatusCode == HttpStatusCode . Found ||
368
+ response . StatusCode == HttpStatusCode . Moved ||
369
+ response . StatusCode == HttpStatusCode . MovedPermanently )
370
+ {
371
+ ErrorRecord er = new ErrorRecord ( new InvalidOperationException ( ) , "MaximumRedirectExceeded" , ErrorCategory . InvalidOperation , request ) ;
372
+ er . ErrorDetails = new ErrorDetails ( WebCmdletStrings . MaximumRedirectionCountExceeded ) ;
373
+ WriteError ( er ) ;
374
+ }
376
375
}
377
376
}
378
- }
379
- catch ( HttpRequestException ex )
380
- {
381
- ErrorRecord er = new ErrorRecord ( ex , "WebCmdletWebResponseException" , ErrorCategory . InvalidOperation , request ) ;
382
- ThrowTerminatingError ( er ) ;
377
+ catch ( HttpRequestException ex )
378
+ {
379
+ ErrorRecord er = new ErrorRecord ( ex , "WebCmdletWebResponseException" , ErrorCategory . InvalidOperation , request ) ;
380
+ ThrowTerminatingError ( er ) ;
381
+ }
383
382
}
384
383
}
385
384
catch ( CryptographicException ex )
0 commit comments