我有一些代码可以从公司网站下载文档。最终,代码使用XMLHTTP = CreateObject(“ MSXML2.serverXMLHttp”)来获取Cookie并通过Winhttp5.1进行下载。它可以在装有Access 16和Windows 10的工作站上使用,也可以在其他具有相同设置的工作站上使用。
但是在Windows 7(32位或64位)/ Access 14或15s上,它会在XMLHTTP上引发错误。发送strAuthenticate行。 VBA错误-214701866:与服务器的连接异常终止。
Set XMLHTTP = CreateObject("MSXML2.serverXMLHttp")
XMLHTTP.Open "POST", Trim(strUrl), False
XMLHTTP.setRequestHeader "Cache-Control", "no-cache"
XMLHTTP.setRequestHeader "X-MicrosoftAjax", "Delta=true"
XMLHTTP.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
XMLHTTP.setRequestHeader "Referer", "https://atlasbridge.com/default.aspx" 'in case the server cares
XMLHTTP.setRequestHeader "Accept", "*/*"
XMLHTTP.setRequestHeader "Accept-Language", "en-US"
XMLHTTP.setRequestHeader "Accept-Encoding", "gzip, deflate"
XMLHTTP.setRequestHeader "Host", "atlasbridge.com"
XMLHTTP.setRequestHeader "Content-Type", "application/x-www-form-urlencoded; charset=utf-8"
XMLHTTP.setRequestHeader "User-Agent", "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko"
XMLHTTP.setRequestHeader "Connection", "keep-alive"
XMLHTTP.Send strAuthenticate
While XMLHTTP.ReadyState <> 4
Sleep 1000
参加
有什么想法可以解决不同版本之间的问题?我在所有PC和winhttp5.1上都有对Microsoft XML 6.0的引用(尽管无论如何,代码都会失败,无论如何我还是要转到代码的那一部分。再加上对Microsoft HTML对象库的引用。我不知道错误是否是访问特定于版本的东西或Windows版本,谢谢!
我尝试过的PS
Set XMLHTTP = CreateObject("MSXML2.XMLHTTP.6.0")
Set XMLHTTP = CreateObject("Microsoft.XMLHTTP")
&尽管行已运行,但它们不返回我需要的3个cookie,仅返回1。
编辑:我相信它与Windows相关。我在运行Server 2016(非常像Windows 10)的终端服务器上运行了Access 2014版本,并且运行正常。