我正在尝试从一个安全的网站提取cookie,然后将它们与winhttp一起使用cookie登录并下载文档。我可以通过IE成功登录,但是我需要“静静地”下载文档。我已经在另一个站点上成功完成了此操作,并且我正在尝试复制该方法。之前的关键是在我的send语句上发送登录脚本行。这次我没有回来任何饼干。但是我不确定如何确定我是否正确进行了身份验证。
当我通过字符串发送时,我认为是正确的,我得到的内容长度为139932,当我发送时,我知道会失败,我的内容长度为: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%2BR%2BnbGylFevanXta3FVMki&HiddenFieldWindowId =&AquantLogin%24UserName = MYUSERNAMEHERE&AquantLogin%24Password = MYPASSWORDHERE&AquantLogin%24LoginButton =登录“
我从Firefox LiveHeaders&Fiddler那里获得了这两个程序,尽管这两个程序显示的版本略有不同,但是我都尝试过。我知道的用户名和密码是正确的。我通过IE在网站上完美登录。如何知道或获取身份验证响应代码并知道是否登录?可能是我需要从下一页中提取Cookie(尽管我不这么认为)。
这是我的响应标头: 状态码:200 OK 缓存控制:私有 日期:2019年2月11日星期一20:31:23 GMT 内容长度:141406 内容类型:text / html;字符集= utf-8 服务器:Microsoft-IIS / 8.5 X-AspNet版本:4.0.30319 X-Powered-by:ASP.NET 与X-UA兼容:IE = Edge,chrome = 1
谢谢。