Integração Zabbix/Lazarus

Integrar o zabbix, com lazarus não é tarefa fácil.

Segue exemplo de código de integração:

function TdmBanco.CheckLogin(llogin: string; lsenha: string): boolean;
var
  lRequestData, lResponseData: RawByteString;
  jsonResponse: TJSONData;
  LURL: string;
  info : string;
begin
  Result := False;
  if (FURL <> '') then
  begin
    LURL := FURL + '/api_jsonrpc.php';
    login := llogin;
    senha := lsenha;
    try
         // Limpa headers existentes
         lHTTP1.RequestHeaders.Clear;
         // Adiciona parâmetros na header usando Add
         lHTTP1.RequestHeaders.Add('Content-type:application/json');
         info := '{"jsonrpc":"2.0","method":"user.login","params":{ "user":"'+llogin+'","password":"'+lsenha+'"},"auth":null,"id":0}';
         // Cria o corpo da requisição no formato application/x-www-form-urlencoded
         lHTTP1.RequestBody := TStringStream.Create(info );

         // Realiza a solicitação POST e obtém a resposta como RawByteString
         lRequestData := lHTTP1.Post(LURL);

         // Captura os cookies da resposta
         Fcookies := TStringList.Create;


         // Processa a resposta JSON
         jsonResponse := GetJSON(lRequestData);
         Fcookies.Assign(lHTTP1.Cookies); // Assume que ResponseCookies armazena os cookies recebidos

         // Armazena o cookie de autenticação
         if jsonResponse.FindPath('result') <> nil then
         begin
           token := jsonResponse.FindPath('result').AsString ;
           fid := jsonResponse.FindPath('id').AsString;
           MessageHint('Autenticação realizada com sucesso!');
         end
         else
         begin
           token := '';
           erro := 'Falha na autenticacao';
           MessageHint(erro);
           FflgErro:= true;
         end;

         if(jsonResponse.FindPath('erro') <> nil) then
         begin
           erro := jsonResponse.FindPath('erro').AsString;
           FflgErro := true;
         end;

         if(token <> '') then
         begin
           Result := True;
         end;

    finally
      jsonResponse.Free;
    end;
  end;
end;