Powershell将HttpWebRequest响应另存为PDF文件

Powershell将HttpWebRequest响应另存为PDF文件,powershell,httpwebresponse,Powershell,Httpwebresponse,我可以成功发送HTTP POST webrequest,但是,我无法将响应保存为pdf文件。这是我代码的一部分,它给了我损坏的pdf文件 [System.IO.Stream] $outputStream = [System.IO.Stream]$request.GetRequestStream() $outputStream.Write($bytes,0,$bytes.Length) [System.IO.StreamReader] $sr = [System.IO.StreamReade

我可以成功发送HTTP POST webrequest,但是,我无法将响应保存为pdf文件。这是我代码的一部分,它给了我损坏的pdf文件

[System.IO.Stream] $outputStream = [System.IO.Stream]$request.GetRequestStream()  
$outputStream.Write($bytes,0,$bytes.Length) 
[System.IO.StreamReader] $sr = [System.IO.StreamReader]$request.GetResponse().GetResponseStream()

$Wrt = [System.IO.File]::Create("C:\Users\geer\report.pdf")
$Buffer = New-Object Byte[] 1024

Do {
$BytesRead = $sr.Read($Buffer, 0, $Buffer.Length)
$Wrt.Write($Buffer, 0, $BytesRead)
} While ($BytesRead -gt 0)

$sr.close()
$sr.Dispose()

$Wrt.Flush()
$Wrt.Close()
$Wrt.Dispose()
请注意,我不能使用invoke webrequest或webclient,因为我只能通过httpwebrequest发送特定的头

期待我能得到任何反馈


谢谢

您保存的文件是您期望的完整大小吗?认为如果响应被分块,那么您没有发出后续请求以获取文件的所有位,可能因此导致损坏。是的,我确实相信这是第一个响应所期望的完整大小。这是输出到PDF的有效方法吗?我假设你需要某种编码器,而不仅仅是向扩展名为.pdf的文件发送字节流。是的,你是对的,我也这么认为,但我只是不知道如何编码。但是,我使用invoke-webrequest和-outfile-param实现了这一点。我真高兴!!
$sr.CurrentEncoding
返回什么?保存文件的前3个字节是什么?