3

我已经看到许多处理通过 VBScript 将 HTTP 文件下载到 ADO 缓冲区的示例,但我不知道如何调整这些示例以使用我需要的内容:从给定字节位置 x 开始下载并下载 n 个字节。我认为这与以下调用有关:

object.Open "GET", "url", asyncValue

上面的代码尝试下载整个文件。那么我可以改变这一点,还是有一种完全不同的方法可以让我在 VBScript 中实现我所需要的?

4

1 回答 1

4

使用XMLHttpRequest并设置Range标题:

url = "..."

first = 123
last  = 321

Set req = CreateObject("MSXML2.XMLHTTP.6.0")
req.Open "GET", url, False
req.setRequestHeader "Range", "bytes=" & first & "-" & last
req.Send

If req.Status = 200 Then WScript.Echo req.ResponseText

您可以通过设置分块检索远程文件

first = iteration * chunksize
last  = first + chunksize

last或者您可以通过省略该值来检索文件的其余部分:

first = 123
last  = ""

如果远程文件是二进制文件,您可能需要将其保存到如下文件:

Set stream = CreateObject("ADODB.Stream")
stream.Open
stream.Type = 1 'binary
stream.Write req.responseBody
stream.SaveToFile "C:\out.file"
stream.Close
于 2013-04-08T17:38:22.520 回答