Поговорим ещё немного о библиотеке Synapse (все посты по тегу) в IDE Lazarus.
На днях в одном из проектов мне потребовалось реализовать проверку доступности веб-приложения и на основании ответа программа должна будет запускать (ну, или вовсе не запускать) функцию.
Для обеспечения данного функционала я обратился к модулю httpsend из состава библиотеки Synapse. На базе метода Get получилась вот такая логическая функция:
uses ..., httpsend;
function GetPage(url:string):Boolean;
var
http: THTTPSend;
begin
http:=THTTPSend.Create;
try
if (http.HTTPMethod('GET', url)) then result:=True else result:=False;
finally
http.Free;
end;
end;
Она умеет возвращать только True, если страница была успешно получена, и False, если никакого ответа не последовало. Базовое применение функции выглядит так:
if GetPage('https://ngdream.ru') then ShowMessage('Сайт доступен. Всё хорошо!') else ShowMessage('Где-то что-то не работает...');
Кстати, с помощью этого метода можно выполнять, например, cgi-скрипты, если не требуется получать от них какой-то развёрнутый ответ.
Если нужно обратиться к сайту с протоколом https — подключите модуль ssl_openssl из состава Synapse и разместите в папке с проектом библиотеки libeay32.dll и ssleay32.dll. Можете применить этот модуль.