通过带有自定义标头的shdocvw.dll下载文件

时间:2019-06-27 10:49:14

标签: access-vba

我需要通过vba应用程序在msaccess中下载一个很大的文件。

使用对象MSXML2.ServerXMLHTTP.6.0和WinHttp.WinHttpRequest.5.1会导致错误,指出没有足够的存储空间来完成此操作。因此,我求助于使用shdocvw.dll中的DoFileDownload方法。 我想做的是将一个额外的标头(API密钥)传递给该函数发送的请求。

这大概是我想要做的。

Private Declare Function DoFileDownload Lib "shdocvw.dll" _
  (ByVal lpszFile As String) As Long


Public Sub Download()
    sDownloadFile = StrConv(<link_to_download>, vbUnicode)
    'set a header before calling DoFileDownload
    Call DoFileDownload(sDownloadFile)
End Sub

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

一次下载整个文件的WebRequest会存储整个数据作为响应。

虽然有一些块响应选项,但是使用Wget编码较少,但是选项更多。

>>> [list(map(i.index, i)) for i in list1]
[[0, 1, 2], [0, 1], [0, 1, 2, 3]]
>>>