Я пытаюсь получить cookie-файлы с защищенного веб-сайта, чтобы затем войти в систему и загрузить документы, используя winhttp с файлами cookie.Я могу успешно войти в систему через IE, но мне нужно загрузить документы "без вывода сообщений".Я сделал это успешно на одном другом сайте, и я пытаюсь повторить метод.Ключом раньше было отправить строку сценария входа в систему в моем операторе отправки.На этот раз я не вернул печенье.Но я не уверен, как определить, правильно ли я аутентифицируюсь.
Когда я отправляю через строку, я думаю, что это правильно, я получаю содержимое длиной 139932, когда я отправляю одно, я знаю, что произойдет сбой, яget Content-Length: 8706. Итак, похоже, что-то происходит, но файлы cookie не приходят.Я использую тот же базовый код, что и другая работающая работа, просто настраивая заголовки.
strUrl = "https://policy.velocityrisk.com/login.aspx?ReturnUrl=%2f"
Set XMLHTTP = CreateObject("MSXML2.serverXMLHttp")
XMLHTTP.Open "POST", Trim(strUrl), False 'post request
XMLHTTP.setRequestHeader "Cache-Control", "no-cache"
XMLHTTP.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
XMLHTTP.setRequestHeader "Referer",
"https://policy.velocityrisk.com/login.aspx?ReturnUrl=%2f"
"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
XMLHTTP.setRequestHeader "Accept-Language", "en-US"
XMLHTTP.setRequestHeader "Accept-Encoding", "gzip , deflate, br"
XMLHTTP.setRequestHeader "Host", "policy.velocityrisk.com"
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.setRequestHeader "Content-Length", "632"
XMLHTTP.setRequestHeader "Upgrade-Insecure-Requests", "1"
XMLHTTP.Send strAuthenticate
While XMLHTTP.ReadyState <> 4
Sleep 1000
Wend
strHeaders = XMLHTTP.getAllResponseHeaders()
Debug.Print strHeaders
Где strAuthenticate выглядит как
strAuthenticate = "__LASTFOCUS = & __ EVENTTARGET = & __ EVENTARGUMENT = & __ VIEWSTATE =% 2FwEPDwUKMTczMDIxMzI4NQ8WAh4OSXNTeXN0ZW1JblRlc3RoFgICAw9kFgQCBQ8PFgIeCEltYWdlVXJsBRp% 2BXEltYWdlc1xWZWxvY2l0eV9sb2dvLmpwZ2RkAg0PZBYCAgMPDxYCHgRUZXh0BTUmY29weTsgV2F0ZXJTdHJlZXQgQ29tcGFueSAyMDE5LiBBbGwgcmlnaHRzIHJlc2VydmVkLmRkZAORdupkttjyAbR% 2FQlVf% 2Bp3NAh5% 2F & __ VIEWSTATEGENERATOR = C2EE9ABB & __ EVENTVALIDATION =% 2FwEdAAX2Ij4yfCg8Y30E3S3Eqyyc8VklVdzG4s% 2FiHDNMch2m9g6cbZuZV% 2FeBRVrjmM1xbCNwqSoE6vOBYOvmhKXLU5mU% 2B5y5Vq4V5va3AqJ7ynUhz4Fpi% 2F% 2Вг% 2BnbGylFevanXta3FVMki & HiddenFieldWindowId = & AquantLogin% 24UserName = MYUSERNAMEHERE & AquantLogin% 24Password = MYPASSWORDHERE & AquantLogin% 24LoginButton = Вход "
ЯЯ взял это из Firefox LiveHeaders & Fiddler, хотя две программы показывают немного другую версию, но я попробовал обе.Имя пользователя и пароли, которые я знаю, верны.Я прекрасно захожу на сайт через IE.Как узнать или получить код ответа для проверки подлинности и узнать, вошел ли я в систему или нет?Возможно, мне нужно извлечь куки со следующей страницы (хотя я так не думаю).
Вот мой заголовок ответа: STATUSCODE: 200 OK Cache-Control: private Дата: понедельник, 11 февраля2019 20:31:23 GMT Content-Length: 141406 Content-Type: text / html;charset = utf-8 Сервер: Microsoft-IIS / 8.5 X-AspNet-версия: 4.0.30319 X-Powered-By: ASP.NET X-UA-совместимый: IE = Edge, chrome = 1
СпасибоВы заранее.