使用 WinHttp.WinHttpRequest.5.1 下载二进制文件 - 内容是二进制乱码

Downloading binary file using WinHttp.WinHttpRequest.5.1 - content is binary gibberish

我正在尝试下载 MS Excel 文件(二进制)。我什至得到了正确的响应 headers(见附件中的两个图像(httpfox 和 vbscript))。当尝试使用以下函数保存 objWinHttp.ResponseBody 时(在许多提到下载二进制文件的帖子中找到):

Function SaveBinaryData (FileName, ByteArray)
  adTypeBinary = 1
  adSaveCreateOverWrite = 2

  SET BinaryStream = CreateObject("ADODB.Stream")

  BinaryStream.Type = adTypeBinary

  BinaryStream.Open
  BinaryStream.Write(ByteArray)

  BinaryStream.SaveToFile FileName, adSaveCreateOverWrite
  BinaryStream = 0
  'BinaryStream.Close
  'Return SaveBinaryData
End Function

文件被保存为二进制内容的乱码。

这里是 Excel 文件,如果有人想查看内容的样子:https://dl.dropboxusercontent.com/u/17845471/mySrsExport.xls

您的代码本身没有任何问题。正如@Bond 已经指出的那样,您的文件不是 Excel 工作簿。这是一个 gzip 压缩的 HTML 页面。将其另存为 mySrsExport.htm.gz,您将能够使用 gunzip or 7-Zip 或其他一些(未)加壳程序提取 HTML 文件。