Delphi tidhttp post get

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by A_V, 2 Aug 2008.

Thread Status:
Not open for further replies.
  1. A_V

    A_V Elder - Старейшина

    Joined:
    18 Feb 2008
    Messages:
    106
    Likes Received:
    34
    Reputations:
    0
    Желательно доходчиво и доступно, тупо от нуля...
    Гуглил везде обсуждение и "как то" вроде понимаешь но не до конца...
    Заранее спасибо за ссылочку!


    Вот еще порыл вроде нашел...

    http://www.swissdelphicenter.ch/torry/showcode.php?id=1855
     
    #1 A_V, 2 Aug 2008
    Last edited: 2 Aug 2008
  2. NFM

    NFM Reservists Of Antichat

    Joined:
    16 Jan 2006
    Messages:
    307
    Likes Received:
    191
    Reputations:
    22
    http://www.bit-team.com/index.php?showtopic=1053&st=0
     
  3. De-visible

    De-visible [NDC] Network develope c0ders

    Joined:
    6 Jan 2008
    Messages:
    916
    Likes Received:
    550
    Reputations:
    66
    что именно не понятно
     
  4. NFM

    NFM Reservists Of Antichat

    Joined:
    16 Jan 2006
    Messages:
    307
    Likes Received:
    191
    Reputations:
    22
    вообще то про инди куча везде инфы, я сам недавно искал когда чекер на делфи писал(правда все равно на сокетах переписал). так что не отмазывайся что гугл и яша не работает.
     
  5. A_V

    A_V Elder - Старейшина

    Joined:
    18 Feb 2008
    Messages:
    106
    Likes Received:
    34
    Reputations:
    0
    вешаю на кнопочку

    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;

    нефига не пашет...

    Гуру хелп плиз, лучше всего разбирать на примерах :)
     
    #5 A_V, 2 Aug 2008
    Last edited: 2 Aug 2008
  6. neprovad

    neprovad Elder - Старейшина

    Joined:
    19 Oct 2007
    Messages:
    899
    Likes Received:
    274
    Reputations:
    59
    Сначала узнать что и куда передавать!
    http://pda-passport.yandex.ru/passport?mode=auth
    Данные POST как минимум
    login=vova
    passwd=123
     
  7. PandoraBox

    PandoraBox Elder - Старейшина

    Joined:
    6 May 2007
    Messages:
    262
    Likes Received:
    176
    Reputations:
    7
    очень быстрый компонент GET/POST <тыц>
     
    1 person likes this.
  8. A_V

    A_V Elder - Старейшина

    Joined:
    18 Feb 2008
    Messages:
    106
    Likes Received:
    34
    Reputations:
    0
    neprovad можно на примере, слабо догоняю
     
  9. A_V

    A_V Elder - Старейшина

    Joined:
    18 Feb 2008
    Messages:
    106
    Likes Received:
    34
    Reputations:
    0
    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;

    вот сделал на компоненте новом что то я не въезжаю что не правильно ...
     
    #9 A_V, 2 Aug 2008
    Last edited: 2 Aug 2008
  10. PandoraBox

    PandoraBox Elder - Старейшина

    Joined:
    6 May 2007
    Messages:
    262
    Likes Received:
    176
    Reputations:
    7
    шас зделаю....

    там еще 2 поля передается
    Code:
        <input type="hidden" name="idkey" value="2Ep1217705940ymil6ll5p">
    
    <input type="hidden" name="timestamp">
    
    Code:
    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&timestamp=1217705353920&login=111&passwd=222&In=%C2%EE%E9%F2%E8
     
    #10 PandoraBox, 2 Aug 2008
    Last edited: 2 Aug 2008
  11. Indig0

    Indig0 New Member

    Joined:
    28 Jul 2008
    Messages:
    9
    Likes Received:
    3
    Reputations:
    0
    Как по мне ТСтрингЛист попроще в качестве постдаты будет... вотъ подправил:
    Code:
    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;
     
  12. A_V

    A_V Elder - Старейшина

    Joined:
    18 Feb 2008
    Messages:
    106
    Likes Received:
    34
    Reputations:
    0
    Indig0
    Сделал как ты сказал возвращает то же самое...
     
  13. De-visible

    De-visible [NDC] Network develope c0ders

    Joined:
    6 Jan 2008
    Messages:
    916
    Likes Received:
    550
    Reputations:
    66
    какая ошибка?
     
  14. A_V

    A_V Elder - Старейшина

    Joined:
    18 Feb 2008
    Messages:
    106
    Likes Received:
    34
    Reputations:
    0
    не ошибка, а в мемо возвращает исходный текст страницы логина а не "почты", или я что - то не так понимаю и еще надо ли включать хедеры?




    Code:
    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;
     
    #14 A_V, 3 Aug 2008
    Last edited by a moderator: 3 Aug 2008
  15. PandoraBox

    PandoraBox Elder - Старейшина

    Joined:
    6 May 2007
    Messages:
    262
    Likes Received:
    176
    Reputations:
    7
    Там еще нада куки подстовлять + urlencode и формировать второй запрос для логирования проще на PHP
     
    #15 PandoraBox, 3 Aug 2008
    Last edited: 3 Aug 2008
  16. A_V

    A_V Elder - Старейшина

    Joined:
    18 Feb 2008
    Messages:
    106
    Likes Received:
    34
    Reputations:
    0
    оо вроде зхаработало!!!
     
  17. De-visible

    De-visible [NDC] Network develope c0ders

    Joined:
    6 Jan 2008
    Messages:
    916
    Likes Received:
    550
    Reputations:
    66
    Во первых, пиши код в тегах [.CODE]
    Во вторых ты забыл про печенья(cookie)
    В третьих авторизация на idHTTP Indy 9
    наврядли получится, решение или Indy 10
    Или Сокеты(рекомендую)
    Пример авторизации тут
     
    1 person likes this.
  18. A_V

    A_V Elder - Старейшина

    Joined:
    18 Feb 2008
    Messages:
    106
    Likes Received:
    34
    Reputations:
    0
    Про теги учту, у меня делфи 2007(там же инди 10? )
    Все заработало, а что без печенек может не получится?


    ------------------------------------
    Спасибо большое всем!!!
     
  19. De-visible

    De-visible [NDC] Network develope c0ders

    Joined:
    6 Jan 2008
    Messages:
    916
    Likes Received:
    550
    Reputations:
    66
    ЗАКРЫТО.
     
    1 person likes this.
Thread Status:
Not open for further replies.