Я пытаюсь загрузить файл с этого веб-сайта, пробовал кучу кода, который я могу найти, и файл загружается, но показывает html страницы входа.
Ниже приведены 2 версии, которые я пробовал. Я пробовал каждый фрагмент кода, который мог найти на SO, и пока не повезло.
Я попробовал обе версии здесь, у них была одна и та же проблема, но их решение не работает для меня. Файл загрузки Vba из Интернета WinHttpReq с входом в систему не работает а>
Кажется, я не могу пройти процесс входа в систему. Я знаю, что переменные (имя пользователя, пароль) в приведенном ниже коде неверны, но я перепробовал все переменные, которые смог найти в источнике (UniqueUser, UniqueLogin, LoginName, каждое слово, которое у них там было), и все равно не повезло.
У одних версий ошибка кода в строке SET COOKIE, у других ошибок нет, файл скачивается но внутри файла все равно html страницы входа
Sub DownloadFile2(myURL As String)
Dim CurPath As String
CurPath = CurrentProject.Path & "\"
Dim strCookie As String, strResponse As String, _
strUrl As String
Dim xobj As Object
Dim WinHttpReq As Object
Set xobj = New WinHttp.WinHttpRequest
UN = "hhhhh"
PW = "gggg"
strUrl = "https://pnds.health.ny.gov/login"
xobj.Open "POST", strUrl, False
xobj.SetRequestHeader "User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.154 Safari/537.36"
xobj.SetRequestHeader "Content-Type", "application/x-www-form-urlencoded"
xobj.Send "username=" & UN & "&password=" & PW & "&login=login"
strResponse = xobj.ResponseText
strUrl = myURL
xobj.Open "GET", strUrl, False
xobj.SetRequestHeader "Connection", "keep-alive"
xobj.SetRequestHeader "User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.154 Safari/537.36"
xobj.Send
strCookie = xobj.GetResponseHeader("Set-Cookie")
strResponse = xobj.ResponseBody
If xobj.Status = 200 Then
Set oStream = CreateObject("ADODB.Stream")
oStream.Open
oStream.Type = 1
oStream.Write xobj.ResponseBody
oStream.SaveToFile CurPath & "ValidationDataHFIS.csv", 2 ' 1 = no overwrite, 2 = overwrite
oStream.Close
End If
End Sub
Sub ddd()
DownloadFile2 ("https://pnds.health.ny.gov/xxxx/xxxx/8")
End Sub
DownloadFile2 ("https://pnds.health.ny.gov/ReferenceDownload/Download/8")
не работает должным образом. Вам нужна ссылка на фактический файл, который всегда будет заканчиваться расширением файла (например, .xlsx). Кроме того,DownloadFile2
— это подпрограмма, а не функция. Так что не заключайте аргумент (URL) в круглые скобки. - person K.Dᴀᴠɪs   schedule 11.10.2019xobj.Send "username=" & UN & "&password=" & PW & "&login=login"
правильно? Форма входа наhttps://pnds.health.ny.gov/login
даже не содержит поля с именемusername
. Когда я пытаюсь войти на эту страницу, запрос POST содержит совершенно другие данные (LoginName
,Token
и т. д.). - person Petr Srníček   schedule 10.11.2019https://pnds.health.ny.gov/account/login
, страница ожидаетLoginName
иToken
. Токен генерируется с использованиемSecurityManager.generate( u, p );
. Самый простой способ — использовать объектBrowser
и выполнить автоматизацию. или узнайте, предлагает ли вашIT team
API - person Krish   schedule 13.11.2019