我已经看到许多处理通过 VBScript 将 HTTP 文件下载到 ADO 缓冲区的示例,但我不知道如何调整这些示例以使用我需要的内容:从给定字节位置 x 开始下载并下载 n 个字节。我认为这与以下调用有关:
object.Open "GET", "url", asyncValue
上面的代码尝试下载整个文件。那么我可以改变这一点,还是有一种完全不同的方法可以让我在 VBScript 中实现我所需要的?
我已经看到许多处理通过 VBScript 将 HTTP 文件下载到 ADO 缓冲区的示例,但我不知道如何调整这些示例以使用我需要的内容:从给定字节位置 x 开始下载并下载 n 个字节。我认为这与以下调用有关:
object.Open "GET", "url", asyncValue
上面的代码尝试下载整个文件。那么我可以改变这一点,还是有一种完全不同的方法可以让我在 VBScript 中实现我所需要的?
使用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