Я застрял с почти полным успехом в автоматизации процесса загрузки. Я использую Fiddler и беру значения и жестко их кодирую, пока все работает. Веб-сайт безопасен, и я получаю куки в порядке. Однако при тестировании загрузки я получаю файл размером 239K, но он не открывается. Windows говорит мне, что это может быть повреждено. Размер файла должен быть 250 КБ, поэтому я знаю, что это не все. Я собирался попробовать и запустить fiddler для захвата моих кодов traffi c, но, что интересно, он фиксирует только то, что я делаю в браузере.
Я пытался:
strFullCookie = "a cookie in here"
strDocLink = "https://gateway.frontlineinsurance.com/pc/service/edge/document/gpa/document/pc:somenumberhere?token=withatokenhere&portalRoute=/AgentDocumentError"
Set WinHttpReq2 = CreateObject("WINHTTP.WinHTTPRequest.5.1")
WinHttpReq2.Open "GET", Trim(strDocLink), False
WinHttpReq2.Option(6) = False
WinHttpReq2.setRequestHeader "User-Agent", "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko"
WinHttpReq2.setRequestHeader "Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9"
WinHttpReq2.setRequestHeader "Accept-Language", "en-US,en;q=0.9"
WinHttpReq2.setRequestHeader "Connection", "keep-alive"
WinHttpReq2.setRequestHeader "Host", "gateway.frontlineinsurance.com"
WinHttpReq2.setRequestHeader "Referer", "https://gateway.frontlineinsurance.com/"
WinHttpReq2.setRequestHeader "Upgrade-Insecure-Requests", "1"
WinHttpReq2.setRequestHeader "Accept-Encoding", "gzip, deflate"
WinHttpReq2.setRequestHeader "Sec-Fetch-User", "?1"
WinHttpReq2.setRequestHeader "Sec-Fetch-Site", "same-origin"
WinHttpReq2.setRequestHeader "Sec-Fetch-Mode", "Navigate"
WinHttpReq2.setRequestHeader "Cache-Control", "no-cache"
WinHttpReq2.setRequestHeader "Content-Type", "application/pdf"
WinHttpReq2.setRequestHeader "Cookie", strFullCookie
WinHttpReq2.Send
'MsgBox WinHttpReq2.responseBody
'MsgBox WinHttpReq2.responseText
Debug.Print WinHttpReq2.Status
strHeaders = WinHttpReq2.getAllResponseHeaders()
Debug.Print strHeaders
Sleep 2000
If WinHttpReq2.Status = 200 Then
Set oStream = CreateObject("ADODB.Stream")
oStream.Open
oStream.Type = 1
oStream.Write WinHttpReq2.responseBody
oStream.SaveToFile "C:\Users\JCarney\Desktop\DownloadedMail\FPITest.pdf", 2 ' 1 = no overwrite, 2 = overwrite
oStream.Close
End If
И я использовал:
'Set WinHttpReq2 = CreateObject("MSXML2.serverXMLHttp")
'Set WinHttpReq2 = CreateObject("Microsoft.XMLHTTP"
ServerXMLhttp отменил тот же результат, что и Winhttp. другой был отклонен сервером.
Запрос Fiddler выглядит следующим образом:
GET https://gateway.frontlineinsurance.com/pc/service/edge/document/gpa/document/pc:somenumberhere?token=sometokehere&portalRoute=/AgentDocumentError HTTP/1.1
Accept: text/html, application/xhtml+xml, image/jxr, */*
Referer: https://gateway.frontlineinsurance.com/
Accept-Language: en-US
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko
Accept-Encoding: gzip, deflate
Host: gateway.frontlineinsurance.com
Connection: Keep-Alive
Cookie: _cookies here
ответ Fiddler выглядит следующим образом:
HTTP/1.1 200 OK
Date: Thu, 20 Feb 2020 18:45:05 GMT
Content-Type: application/pdf
Connection: keep-alive
Set-Cookie: a cookie
Set-Cookie: a cookie
Server: Apache/2.4.6 (Red Hat Enterprise Linux)
Content-Disposition: filename=Declarations Page.pdf
Vary: Accept-Encoding,User-Agent
Set-Cookie: a cookie
Set-Cookie: a cookie
Cache-Control: max-age=0, must-revalidate
Content-Length: 255177
, когда я печатаю свои возвращенные заголовки из мой код, который я получаю:
Cache-Control: max-age=0, must-revalidate
Connection: keep-alive
Date: Thu, 20 Feb 2020 18:49:50 GMT
Transfer-Encoding: chunked
Content-Type: application/pdf
Content-Encoding: gzip
Server: Apache/2.4.6 (Red Hat Enterprise Linux)
Set-Cookie: a good cookie
Set-Cookie: a good cookie
Set-Cookie: a good cookie
Set-Cookie:a good cookie
Vary: Accept-Encoding,User-Agent
Content-Disposition: filename=Declarations Page.pdf
Я получаю ожидаемые 4 куки, но мой файл короткий (pdf). Я не уверен, что еще изменить. Я пытался открыть файл как TXT или html, его гиббери sh, но много гиббери sh. Просто не идеальный PDF. Заранее благодарю за идеи о том, что я могу настроить.