Подключаем cookies для XML-RPC
Для работы с XML-RPC в дельфи написан отличный модуль, о котором я уже упоминал - XML-RPC в Delphi. Для работы с одним известным сервисом, предоставляющем API на XML-RPC, требуется авторизация и хранение Cookies для последующей работы. В принципе, cookies могут пригодится и для других целей в xml-rpc, покажу как я их подключил.
1. Добавил новое свойство в класс TRpcCaller:
FSessionCookies : string; // cookies :)
Сделал возможность его читать и изменять:
property SessionCookies : string read FSessionCookies write FSessionCookies;
Задаём cookies в функции
function TRpcCaller.Post(const RawData: string): string;
Непосредственно перед отправкой post запроса:
FSession.AllowCookies := true; if FSessionCookies <> '' then begin CM := TidCookieManager.Create(FSession); CC := TIdCookies.Create(CM); Cookie := TIdCookieRFC2109.Create(CC); Cookie.CookieText := FSessionCookies; CM.CookieCollection.AddCookie(cookie); end;
После выполнения запроса не забываем сохранить новые cookies, если он нам нужны:
FSessionCookies := FSession.CookieManager.CookieCollection.Items[0].CookieText
См. также:
Как определить IP-адреса компьютера из Delphi?
Удаление всех файлов из указанной папки через Delphi
Алгоритм MD5 в Delphi
