Заметки · 11.04.2023

Доступность сайта с HTTPSend

Поговорим ещё немного о библиотеке 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. Можете применить этот модуль.