Ошибка сервера при аутентификации с помощью ServerXMLhttp в некоторых версиях MS Access - PullRequest
0 голосов
/ 07 февраля 2019

У меня есть код для загрузки документов с веб-сайта компании.В конечном итоге код использует XMLHTTP = CreateObject ("MSXML2.serverXMLHttp"), чтобы получить файлы cookie Winhttp5.1 для загрузки.Он работает на моей рабочей станции с Access 16 и Windows 10 и на другой рабочей станции с той же настройкой.

Но на моей Windows 7 (32-разрядная или 64-разрядная версия) / Access 14 или 15-е выдает ошибку 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

Wend

Есть какие-либо идеи о том, что попытаться устранить неполадки между версиями?У меня есть ссылка на Microsoft XML 6.0 на всех ПК и winhttp5.1 (хотя в любом случае код завершается ошибкой, прежде чем я добираюсь до этой части кода. Плюс ссылка на библиотеку объектов Microsoft HTML. Я не знаю, является ли ошибкаДоступ к конкретной версии или версии для Windows. Спасибо!

PS Я попробовал

Set XMLHTTP = CreateObject("MSXML2.XMLHTTP.6.0")
Set XMLHTTP = CreateObject("Microsoft.XMLHTTP") 

, и хотя строки запускаются, они не возвращают 3 нужные мне куки, возвращая только 1.

Редактировать: Я считаю, что это связано с Windows. Я запустил версию Access 2014 на терминальном сервере под управлением Server 2016, очень похожего на Windows 10, и он работал нормально.

...