powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Передать в форму имя пользователя и пароль, используя MSXML2.ServerXMLHTTP методом "POST"
1 сообщений из 1, страница 1 из 1
Передать в форму имя пользователя и пароль, используя MSXML2.ServerXMLHTTP методом "POST"
    #39731106
AvnAvnAvn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дано: Сайт с формой ввода имени пользователя и пароля, с которого требуется периодически "парсить" информацию и помещать её в некую самописную программу для ее последующей обработки (дополнения пользовательской информацией и т.п.). Пользователь вручную копировал информацию в программу через буфер обмена. Если бы форма ввода пароля отсутствовала, то задача решалалась-бы мною без проблем с использованием MSXML2.ServerXMLHTTP.6.0. и запроса методом "GET".


Формы ввода пароля не предусматривает прием имени пользователя и пароля через адресную строку.
Форма содержит поля <input name="login" value="" size="20">
<input type="password" name="password" size="20">

Содержание формы ввода пароля:
<html>
<body bgcolor="#ffffff" text="#000000" link="#003399" alink="#003399" vlink="#003399">
<table width="100%" cellpadding="2" cellspacing="2" border="0">
<tr valign="top">
<td>
<table border="0" cellspacing="2" cellpadding="2">
<tr>
<td>
<form method="post">
<input type="hidden" name="back" value="/client/review/">
<table border="0" cellspacing="2" cellpadding="2">
<tr>
<td>Имя:</td>
<td> <input name="login" value="" size="20"> </td>
</tr>
<tr>
<td>Пароль:</td>
<td> <input type="password" name="password" size="20"> </td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="submit" value="Вход">
</td>
</tr>
</table>
</form>
</tr>
</table>
</td>
</tr>
</table>
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr>
<td colspan="2" width="100%" height="1" valign="top" bgcolor="#006699"></td>
</tr>
</table><br /><br />
</body>
</html>


ЗАДАЧА: передать имя пользователя и пароль запросом методом "POST":

Set objSrvHttp = CreateObject("MSXML2.ServerXMLHTTP.6.0")
UID = "****"
PWD = "***"
objSrvHttp.setProxy 0 'параметры прокси как указано в windows
objSrvHttp.setTimeouts 10000, 10000, 10000, 10000 '10 sec
objSrvHttp.Open "POST", urlExec, False, UID, PWD
objSrvHttp.setProxyCredentials UID, PWD
objSrvHttp.setTimeouts 10000, 10000, 10000, 10000 '10 sec
objSrvHttp.setRequestHeader "charset", "Windows-1251" 'это используется Post-запросом
objSrvHttp.setRequestHeader "Content-Type", "text/html; charset=Windows-1251"
On Error Resume Next
objSrvHttp.send "login=****&password=***" '-Здесь пытаюсь передать в поля формы имя пользователя и пароль (хотя подозреваю,
что это неправильно)

If (200 <> objSrvHttp.Status) Then
TextStream.WriteLine ("*4 HTTP Error: ")
TextStream.WriteLine (" " & Trim(objSrvHttp.Status))
TextStream.WriteLine (" " & Trim(objSrvHttp.StatusText))
TextStream.WriteLine (" " & urlExec)
Else
On Error Resume Next
strContent1 = objSrvHttp.responseText ' objSrvHttp.responseBody
If (Err.Number <> 0) Then
TextStream.WriteLine ("*45 HTTP Error: ")
TextStream.WriteLine (" " & Trim(objSrvHttp.Status))
TextStream.WriteLine (" " & Trim(objSrvHttp.StatusText))
TextStream.WriteLine (" " & urlExec)
Else
TextStream.WriteLine ("Получено после отправки имени пользователя и пароля:")
TextStream.WriteLine (strContent1)
End If
End If

Ожидаю увидеть в строке strContent1 форму с нужными мне данными, как это происходит после правильного ввода имени пользователя и пароля.
Результат: strContent1 содержит прежнюю форму ввода имени пользователя и пароля так, как буд-то в форму ничего не передавали.

Попытка2:
....
strIshodnContent = <Содержание формы из предыдущего запроса формы ввода пароля из objSrvHttp.responseText>
В содержании формы заменяю тэги ввода имени пользователя и пароля на те-же тэги с заполненными параметрами value=
strIshodnContent = Replace(strContent, "<input name=""login"" value="""" size=""20""></td>", "<input name=""login"" value=""**Логин**"" size=""20""></td>")
strIshodnContent = Replace(strContent, "<input type=""password"" name=""password"" size=""20""></td>", "<input type=""password"" name=""password"" value=""**Пароль**"" size=""20""></td>")
objSrvHttp.send strIshodnContent

Результат: strContent1 содержит прежнюю форму ввода имени пользователя и пароля так, как буд-то в форму ничего не передавали.

Вопрос: Как передать в форму имя пользователя и пароль, используя MSXML2.ServerXMLHTTP ?
...
Рейтинг: 0 / 0
1 сообщений из 1, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Передать в форму имя пользователя и пароль, используя MSXML2.ServerXMLHTTP методом "POST"
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]