我见过许多处理通过VBScript将HTTP文件下载到ADO缓冲区的示例,但我无法弄清楚如何调整这些示例以满足我的需要:在给定的字节位置x开始下载并下载n个字节。我认为这与以下调用有关:
object.Open "GET", "url", asyncValue
以上代码尝试下载整个文件。那么我可以改变这一点,还是有一种不同的方法可以让我实现我在VBScript中所需要的东西?
答案 0 :(得分: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