Авторизация на сайте используя TWebBrowser(Delphi)

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by Rastamanka, 20 Oct 2011.

  1. Rastamanka

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

    Joined:
    26 Nov 2008
    Messages:
    429
    Likes Received:
    11
    Reputations:
    7
    Доброе утро.
    Прошу совета.
    Есть сайт на сайте есть форма для логина она на Flash!
    Как мне реализовать вход на сайт используя компонент TWebBrowser?
    На данный момент идея одна отснифать куда идет запрос с Flash.
    Через TWebBrowser послать туда запрос и получить куки и потом перейти уже на сайте используя данные куки.
    Если это единственный вариант то все равно хотелось бы пример ибо не погуглив не очень понятно как передавать на определенный URL post запрос используя TWebBrowser и после этого произвести переход на нужную страницу используя куки полученные в предыдушем запросе.
     
  2. xophet

    xophet Member

    Joined:
    16 Apr 2011
    Messages:
    617
    Likes Received:
    49
    Reputations:
    5
    Доброе утро!
    а зачем тебе TWebBrowser?
    Логинишься в флеше с включенным сниффером, и потом отправляешь такой же запрос при помощи классов для этого предназначенных (что ты там используешь: соксы или какие-то классы-обертки). Получаешь куки, устанавливаешь их, и делаешь запрос к сайту
     
  3. Rastamanka

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

    Joined:
    26 Nov 2008
    Messages:
    429
    Likes Received:
    11
    Reputations:
    7
    Запрос с флеша на авторизацию идет на php скрипт. На какой именно я знаю. Просто не хотелось бы морочится с другими компонентами т.к. думаю это будет замедлять программу.
    Таким же способом я мог бы послать запрос через Indy получить куки и потом подставить их в TWebBrowser.
    Но мне хочется именно через TWebBrowser отправить запрос и получить cookie для дальнейшего использования.
     
    #3 Rastamanka, 20 Oct 2011
    Last edited: 20 Oct 2011
  4. Rastamanka

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

    Joined:
    26 Nov 2008
    Messages:
    429
    Likes Received:
    11
    Reputations:
    7
    В общем как передать значение методом POST используя TWebBrowser найдено.
    Code:
    var
      strData: string;
      PostData: OleVariant;
      Headers: OleVariant;
      i: Integer;
    
                      strData := 'act=login&data[login]='+user+'&data[password]=' + password;
                      PostData := VarArrayCreate([0, Length(strData) - 1], varByte);
    
                     for i := 1 to Length(strData) do
                       PostData[i-1] := Ord(strData[i]);
                 
                      Headers := 'Content-Type: application/x-www-form-urlencoded' + #10#13;
                      webbrowser.Navigate(tmhost+'/login.php?mode=xml', EmptyParam, EmptyParam, PostData, Headers);
    
    Но тут поднялось 2 вопроса. При использовании данного метода переход по ссылке виден. Ну то есть переход отображается в браузере. А мне необходимо чтобы это было сделано скрыто.
    И так же интересует как используя TWebBrowser прочитать ответ от сервера(загруженную страницу) и поместить ее в переменную.
     
Loading...