【问题标题】:Download n Bytes Starting at x Position of HTTP File In VBScript从 VBScript 中 HTTP 文件的 x 位置开始下载 n 个字节
【发布时间】:2013-04-09 01:38:22
【问题描述】:

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

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

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

【问题讨论】:

    标签: vbscript


    【解决方案1】:

    使用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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-09-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多