Post

  • Автор темы Froex
  • Дата начала
F

Froex

#1
отправляю с помощью IdHTTP методом POST данные. В поиске нашел следующий текст:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
Fields: TIdMultiPartFormDataStream;
begin
Fields := TIdMultiPartFormDataStream.Create;
with Fields do
begin
Fields.AddFormField('param1', 'value1');
Fields.AddFormField('param2', 'value2');
end;
Memo1.Text:=IdHTTP1.Post('http://mydomain.ru/enter.php', Fields);
end;
Вот код самой формы:
Код:
<form method="post" name="snd" action="enter.php">
<input type="hidden" name="w" value="">
<input type="hidden" name="login" value="1201861312">
<input type="text" name="ec95c50" value="Froex" maxlength="15">
<input type="password" name="e7910da" value="*****" maxlength="20">
<input type="hidden" name="e94957d" value="117a831b8c">
<input type="image" value="login" border="0" name="s" src="1.gif" width="80" height="20" onMouseUp="btm0()" onMouseOut="btm0()" onClick="xy()"></input>
<input type="Checkbox" name="autologin" value="ok" checked>
</form>
В результате я решил написать строки:
Код:
Fields.AddFormField('w', '');
Fields.AddFormField('login', '1201861312');
Fields.AddFormField('ec95c50','Froex');
Fields.AddFormField('e7910da','*****');
Fields.AddFormField('e94957d','117a831b8c');
Fields.AddFormField('s','login');
Fields.AddFormField('autologin','ok');
Правильно ли я их написал? вместо param надо писать имя отправляемой переменной?

При заходе на сайт необходимо пользоваться куками. Как я понял, мне надо поставить на форму куки мэнэджер. В свойствах IdHTTP1 указал на этот куки мэнэджер. Как работать дальше?
 
F

Froex

#2
Извините за беспокойство - разобрался сам немного другим методом)))
 
F

Froex

#3
Код:
procedure TForm1.Login;
var
list: TStringList;
response: TStringStream;
begin
response:=TstringStream.Create('');
list := TStringList.Create;

//далее добавляем отправляемые значения
list.Add('param1=value1');
list.Add('param2=value2');

try
//метод POST по указанному URL
IdHTTP1.Post('http://mydomain.ru/login.php',list,Response);
finally
//освобождение
list.Free;
response.free;
end;
end;

если подключение не нужно, то испольуем метод IdHTTP1.Disconnect;
если нужно получить HTML-код страницы после отправки данных, то после метода POST пишем 
memo1.lines.text := response.DataString;