Получение файлов cookie, отправка файлов cookie и публикация переменных в VBScript - PullRequest
3 голосов
/ 07 сентября 2011

Я пытаюсь программно отправить некоторые данные через веб-форму, используя vbscript. Сайт, на котором я публикую его, содержит некоторые java, и, покопавшись в заголовках, я заметил, что он отправляет cookie, содержащий JSESSIONID, что, я считаю, связано с аутентификацией java:

Cookie: JSESSIONID = XXXXXXXXXXXXXXXXXXXXX

Когда я просто отправляю адрес и почтовые данные, которые я хочу отправить, и смотрю на текст ответа, он отправляется обратно на страницу аутентификации java, что заставляет меня думать, что мне нужно получить cookie-файл jsessionid и отправить его обратно с данными а также.

Это функция, которую я использую для отправки данных поста. Для простых форм это, кажется, работает нормально, но Java на этой странице вроде меня бросил:

Function Fetch(URL, POST)

  Set WshShell = CreateObject("WScript.Shell")
  Set http = CreateObject("Microsoft.XmlHttp")
    http.open "POST", URL, FALSE
    http.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
    http.send POST
  Fetch = http.responseText
 set WshShell = nothing
 set http = nothing  

End Function

Мои вопросы на самом деле таковы: как это правильно сделать? Нужно ли загружать первую страницу, получать cookie-файлы и повторно отправлять их вместе с формой? И если да, то как мне получить куки, которые сервер отправляет обратно в заголовок? Я вижу, когда заглядываю в отправленные ими заголовки:

Set-Cookie: JSESSIONID = XXXXXXXXXXXXXXXXXXXXX; Path = / Страница

Большое спасибо.

1 Ответ

4 голосов
/ 07 сентября 2011

Вы можете получить через http.getResponseHeader("Set-Cookie") или синтаксический анализ http.getAllResponseHeaders().Затем вы должны добавить значения cookie в заголовок запроса через http.setRequestHeaders "Cookie", "JSESSIONID=XXXXXXXXXXXXXXXXXXXXX; Path=/Page" при следующих запросах.Итак, есть еще один вариант (если я не ошибаюсь), использующий CreateObject("WinHttp.WinHttpRequest.5.1").

Он способен запомнить файлы cookie, которые ранее использовались при следующих запросах, если вы используете тот же экземпляр.*

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...