Я пытаюсь загрузить файл с этого веб-сайта, пробовал кучу кода, который я могу найти, и файл загружается, но показывает 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