@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, и в этом случае требуется использовать другой подход.
@montana_hand
Ниже представлен альтернативный способ авторизации на сайте средствами Delphi 2009, используя компонент TWebBrowser:
1 2 3 4 |
procedure TForm1.Button1Click(Sender: TObject);
begin
WebBrowser1.Navigate('http://адрес_сайта'); // Замените на адрес нужного сайта
end;
|
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;
|
После ввода логина и пароля в поля авторизации, форма будет отправлена на сервер, и в случае успешной авторизации будет загружена другая страница. Вы можете обработать эту ситуацию в обработчике события OnDocumentComplete, проверив содержимое переменной URL на соответствие адресу успешной авторизации.