Просмотр полной версии : Delphi tidhttp post get
Желательно доходчиво и доступно, тупо от нуля...
Гуглил везде обсуждение и "как то" вроде понимаешь но не до конца...
Заранее спасибо за ссылочку!
Вот еще порыл вроде нашел...
http://www.swissdelphicenter.ch/torry/showcode.php?id=1855
http://www.bit-team.com/index.php?showtopic=1053&st=0
De-visible
02.08.2008, 21:29
что именно не понятно
вообще то про инди куча везде инфы, я сам недавно искал когда чекер на делфи писал(правда все равно на сокетах переписал). так что не отмазывайся что гугл и яша не работает.
вешаю на кнопочку
procedure TForm1.Button1Click(Sender: TObject);
var
data: TIdMultiPartFormDataStream;
begin
data := TIdMultiPartFormDataStream.Create;
try
{add the used parameters for the script}
data.AddFormField('login', '111');
data.AddFormField('passwd', '222);
data.AddFormField('Войти', 'submit');
{ Call the Post method of TIdHTTP and read the result into TMemo}
Memo1.Lines.Text := http.Post('http://mail.yandex.ru/pda/', data);
finally
data.Free;
end;
end;
нефига не пашет...
Гуру хелп плиз, лучше всего разбирать на примерах :)
neprovad
02.08.2008, 22:12
Сначала узнать что и куда передавать!
http://pda-passport.yandex.ru/passport?mode=auth
Данные POST как минимум
login=vova
passwd=123
PandoraBox
02.08.2008, 22:17
очень быстрый компонент GET/POST <тыц> (http://www.delphilab.ru/content/view/97/1/)
neprovad можно на примере, слабо догоняю
procedure TForm1.Button1Click(Sender: TObject);
var
SHttp: TSwinHttp;
begin
SHttp := TSwinHttp.Create();
SHttp.InThread := false; // переводим в синхронный режим
SHttp.Post('http://mail.yandex.ru/pda/', 'login=111&passwd=222' );
if SHttp.Error = 0 then // если всё успешно
Memo1.Lines.LoadFromStream(SHttp.Response.Content) ;
SHttp.Free;
end;
вот сделал на компоненте новом что то я не въезжаю что не правильно ...
PandoraBox
02.08.2008, 22:58
шас зделаю....
там еще 2 поля передается <input type="hidden" name="idkey" value="2Ep1217705940ymil6ll5p">
<input type="hidden" name="timestamp">
POST /passport?mode=auth HTTP/1.1
Host: pda-passport.yandex.ru
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1
Keep-Alive: 300
Connection: keep-alive
Referer: http://pda-passport.yandex.ru/passport?mode=auth
Cookie: yandexuid=1936284951213696636; yabs-frequency=/2/e8e_0Au3FBNrGG2U0pm0//fGAk0m41
Content-Type: application/x-www-form-urlencoded
Content-Length: 92
idkey=2Et1217706250uqa9qp0vx×tamp=1217705353920&login=111&passwd=222&In=%C2%EE%E9%F2%E8
вешаю на кнопочку
...................
нефига не пашет...
Гуру хелп плиз, лучше всего разбирать на примерах :)
Как по мне ТСтрингЛист попроще в качестве постдаты будет... вотъ подправил:
procedure TForm1.Button1Click(Sender: TObject);
var
data: TStringList;
begin
data := TStringList.Create;
try
{add the used parameters for the script}
data.Add('login=111');
data.Add('passwd=222');
data.Add('submit=Âîéòè');
{ Call the Post method of TIdHTTP and read the result into TMemo}
Memo1.Lines.Text := http.Post('http://mail.yandex.ru/pda/', data);
finally
data.Free;
end;
end;
Indig0
Сделал как ты сказал возвращает то же самое...
De-visible
03.08.2008, 00:05
Indig0
Сделал как ты сказал возвращает то же самое...
какая ошибка?
не ошибка, а в мемо возвращает исходный текст страницы логина а не "почты", или я что - то не так понимаю и еще надо ли включать хедеры?
procedure TForm1.Button1Click(Sender: TObject);
var
data: TStringList;
begin
data := TStringList.Create;
try
{add the used parameters for the script}
data.Add('login=123');
data.Add('passwd=123');
data.Add('submit=Войти');
{ Call the Post method of TIdHTTP and read the result into TMemo}
Memo1.Lines.Text := http.Post('http://pda-passport.yandex.ru/passport?mode=auth', data);
finally
data.Free;
end;
end;
PandoraBox
03.08.2008, 00:09
Там еще нада куки подстовлять + urlencode (http://www.delphisources.ru/pages/faq/base/encode_url.html) и формировать второй запрос для логирования проще на PHP
De-visible
03.08.2008, 00:12
Во первых, пиши код в тегах [.CODE]
Во вторых ты забыл про печенья(cookie)
В третьих авторизация на idHTTP Indy 9
наврядли получится, решение или Indy 10
Или Сокеты(рекомендую)
Пример авторизации тут (https://forum.antichat.ru/threadnav69514-2-10.html)
Про теги учту, у меня делфи 2007(там же инди 10? )
Все заработало, а что без печенек может не получится?
------------------------------------
Спасибо большое всем!!!
De-visible
03.08.2008, 00:25
ЗАКРЫТО.
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot