在某些版本的MS Access上使用ServerXMLhttp进行服务器错误身份验证

时间:2019-02-07 19:37:32

标签: vba msxml

我有一些代码可以从公司网站下载文档。最终,代码使用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版本,并且运行正常。

0 个答案:

没有答案