В продолжение к моему предыдущему вопросу: Automating File Download of a link that looks like this: https://www.domain.com/TableData/TableA.csvЗагрузка файла с WinHttp с помощью POST/GET и заголовки (с VBA)
Я учусь больше о заголовках, отправляемых с POST и GET - но я далеко от знания того, что мне нужно знать.
Код, который я до сих пор работает при загрузке файла, но проблема с последним вопросом по-прежнему сохраняется. Когда я открываю загруженный файл после выполнения, он заполняется html страницы входа, как если бы учетные данные не работали из входа POST. Я подозреваю, что моя проблема заключается в строке strAuthenticate, но я точно не знаю.
Sub SaveFileFromURL()
Dim FileNum As Long
Dim FileData() As Byte
Dim WHTTP As Object
fileUrl = "https://www.ncci.com/Manuals/RateTableData/State/XX/XX.csv '%20
filePath = "C:\Apps\information.csv"
myuser = "xxxxxx"
mypass = "xxxxxx"
strAuthenticate = "sm_userid=xxxxx&sm_password=xxxxxx"
Set WHTTP = CreateObject("WinHTTP.WinHTTPrequest.5.1")
WHTTP.Open "POST", "https://www.ncci.com", False
WHTTP.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
WHTTP.send strAuthenticate
x = WHTTP.getResponseHeader("Set-Cookie")
MsgBox x
WHTTP.Open "GET", fileUrl, False
WHTTP.setRequestHeader "Cookie", x
WHTTP.send
FileData = WHTTP.responseBody
Set WHTTP = Nothing
FileNum = FreeFile
Open filePath For Binary Access Write As #FileNum
Put #FileNum, 1, FileData
Close #FileNum
MsgBox "File has been saved!", vbInformation, "Success"
End Sub
Также может быть установлен файл cookie сеанса. Посмотрите там тоже. –
Спасибо Райан за ваше предложение. У меня все еще такая же проблема, но теперь вы заставляете меня задаться вопросом, нужно ли мне устанавливать все файлы cookie, так как на этом сайте есть несколько файлов cookie. Как установить все из них? – Seraphim
Посмотрите на этот вопрос. Я спросил по этой теме. http://stackoverflow.com/questions/38726408/retrieve-all-cookies-from-internet-explorer –