DELPHI INDY АВТОРИЗАЦИЯ
Авторизация – это одна из самых важных функций в веб-разработке. В Delphi для реализации авторизации можно использовать компоненты Indy. Среди них есть несколько классов, которые могут быть полезны при реализации авторизации. Например, TIdHTTP, TIdTCPClient и TIdCookieManager.Для авторизации с помощью компонента TIdHTTP можно использовать методы POST и GET. Для отправки POST-запроса можно использовать следующий код:
IdHTTP1 := TIdHTTP.Create(nil);try Params := TStringList.Create; try Params.Add('login=' + login); Params.Add('password=' + password); Response := IdHTTP1.Post('http://example.com/login.php', Params); finally Params.Free; end;finally IdHTTP1.Free;end;
Авторизация может быть осуществлена и с помощью компонента TIdTCPClient. Для этого можно воспользоваться следующим кодом:IdTCPClient1 := TIdTCPClient.Create(nil);try IdTCPClient1.Host := 'example.com'; IdTCPClient1.Port := 80; IdTCPClient1.Connect; IdTCPClient1.IOHandler.WriteLn('POST /login.php HTTP/1.1'); IdTCPClient1.IOHandler.WriteLn('Host: example.com'); IdTCPClient1.IOHandler.WriteLn('Content-Type: application/x-www-form-urlencoded'); IdTCPClient1.IOHandler.WriteLn('Content-Length: ' + IntToStr(Length(LoginRequest))); IdTCPClient1.IOHandler.WriteLn(''); IdTCPClient1.IOHandler.WriteLn(LoginRequest); Response := IdTCPClient1.IOHandler.ReadString(IndyTextEncoding_Default, -1);finally IdTCPClient1.Free;end;
Необходимо заменить "example.com" на действующее значение. Авторизация также может быть осуществлена при помощи класса TIdCookieManager, который управляет куками. Для использования компонента TIdCookieManager необходимо настроить компонент TIdHTTP следующим образом:IdHTTP1 := TIdHTTP.Create(nil);try IdCookieManager1 := TIdCookieManager.Create(nil); try IdHTTP1.CookieManager := IdCookieManager1; Params := TStringList.Create; try Params.Add('login=' + login); Params.Add('password=' + password); Response := IdHTTP1.Post('http://example.com/login.php', Params); finally Params.Free; end; finally IdCookieManager1.Free; end;finally IdHTTP1.Free;end;
Эта конструкция позволяет перехватывать куки в ответе от сервера и выставлять нужные куки в запросе. Таким образом, можно сохранять сессию авторизации между запросами.В конце не забудьте закрыть соединение:IdHTTP1.Disconnect;
TCP client and server in Delphi
POST и GET запросы в Delphi - Indy idHTTP
Delphi indy авторизация на сайтах idHTTP
Авторизация на сайте Одноклассников. Delphi, Indy
DAISY летние возможности и новая система командной работы
Авторизация на сайте, Delphi (idhttp)
Урок Авторизация и Регистрация углубленное изучение
IndyHttp GET with OpenSSL