github.com/niedbalski/juju@v0.0.0-20190215020005-8ff100488e47/cloudconfig/windowsuserdatafiles/invokewebrequest.ps1 (about) 1 2 Function Invoke-FastWebRequest { 3 Param( 4 $URI, 5 $OutFile 6 ) 7 8 if(!([System.Management.Automation.PSTypeName]'System.Net.Http.HttpClient').Type) 9 { 10 $assembly = [System.Reflection.Assembly]::LoadWithPartialName("System.Net.Http") 11 } 12 13 $client = new-object System.Net.Http.HttpClient 14 15 $task = $client.GetStreamAsync($URI) 16 $response = $task.Result 17 $outStream = New-Object IO.FileStream $OutFile, Create, Write, None 18 19 try { 20 $totRead = 0 21 $buffer = New-Object Byte[] 1MB 22 while (($read = $response.Read($buffer, 0, $buffer.Length)) -gt 0) { 23 $totRead += $read 24 $outStream.Write($buffer, 0, $read); 25 } 26 } 27 finally { 28 $outStream.Close() 29 } 30 } 31