Как авторизоваться на сайте средствами delphi 2009?

Пользователь

от montana_hand , в категории: Другие , 2 года назад

Как авторизоваться на сайте средствами delphi 2009?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от jerrold_langworth , 2 года назад

@montana_hand 

Для авторизации на сайте средствами Delphi 2009 можно использовать компонент TIdHTTP из библиотеки Indy.


Ниже приведен пример кода, который демонстрирует, как отправить POST-запрос на сайт с параметрами авторизации и получить ответ:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
uses
  IdHTTP;

procedure TForm1.Button1Click(Sender: TObject);
var
  HTTP: TIdHTTP;
  Params: TStringList;
  Response: string;
begin
  HTTP := TIdHTTP.Create(nil);
  Params := TStringList.Create;
  try
    Params.Add('username=Ваш_логин');
    Params.Add('password=Ваш_пароль');
    Response := HTTP.Post('http://адрес_сайта/авторизация.php', Params);
    if Pos('Успешная авторизация', Response) > 0 then
      ShowMessage('Вы авторизованы на сайте')
    else
      ShowMessage('Ошибка авторизации');
  finally
    Params.Free;
    HTTP.Free;
  end;
end;


В этом примере создается экземпляр TIdHTTP, который используется для отправки POST-запроса на адрес http://адрес_сайта/авторизация.php с параметрами username и password, содержащими логин и пароль пользователя соответственно. Полученный ответ сохраняется в переменную Response, которая затем проверяется на наличие текста "Успешная авторизация". Если такой текст найден, то пользователь считается авторизованным на сайте.


Обратите внимание, что в реальном приложении необходимо использовать безопасное соединение HTTPS и защиту от CSRF-атак. Кроме того, некоторые сайты могут использовать другие методы авторизации, например, OAuth2, и в этом случае требуется использовать другой подход.

Пользователь

от camren , год назад

@montana_hand 

Ниже представлен альтернативный способ авторизации на сайте средствами Delphi 2009, используя компонент TWebBrowser:

  1. На главной форме разместите компонент TWebBrowser.
  2. Создайте кнопку "Войти" (Button) и привяжите к ней обработчик события OnClick.
  3. В обработчике события OnClick кнопки "Войти" добавьте следующий код:
1
2
3
4
procedure TForm1.Button1Click(Sender: TObject);
begin
  WebBrowser1.Navigate('http://адрес_сайта'); // Замените на адрес нужного сайта
end;


  1. Добавьте обработчик события OnDocumentComplete компонента TWebBrowser:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
procedure TForm1.WebBrowser1DocumentComplete(ASender: TObject; const pDisp: IDispatch; var URL: OleVariant);
var
  Doc: OleVariant;
  Form: OleVariant;
  Inputs: OleVariant;
  Input: OleVariant;
begin
  if URL = 'http://адрес_сайта' then // Замените на адрес нужного сайта
  begin
    Doc := WebBrowser1.Document;
    Form := Doc.Forms.Item(0); // Предполагается, что форма авторизации находится на первом месте

    Inputs := Form.GetElementsByTagName('input');
    for Input in Inputs do
    begin
      if Input.Name = 'username' then // Замените на имя поля для ввода логина
        Input.Value := 'Ваш_логин'; // Замените на свой логин
      if Input.Name = 'password' then // Замените на имя поля для ввода пароля
        Input.Value := 'Ваш_пароль'; // Замените на свой пароль
    end;

    Form.Submit();
  end;
end;


  1. Обратите внимание на закомментированные строчки, где необходимо заменить адрес сайта, имена полей для ввода логина и пароля, а также значения логина и пароля на свои данные.


После ввода логина и пароля в поля авторизации, форма будет отправлена на сервер, и в случае успешной авторизации будет загружена другая страница. Вы можете обработать эту ситуацию в обработчике события OnDocumentComplete, проверив содержимое переменной URL на соответствие адресу успешной авторизации.