Sample code for 30+ languages & platforms
Pascal (Lazarus/Delphi)

Belgium eHealth Platform - checkConnection

See more Belgian eHealth Platform Examples

Demonstrates the first operation of PlatformIntegrationConsumerTest (checkConnection), which has no message-level security and therefore no wsse:Security block in the SOAP header. You test the SSL/TLS connection to the SOA platform.

Chilkat Pascal (Lazarus/Delphi) Downloads

Pascal (Lazarus/Delphi)
program ChilkatDemo;

// Demonstrates using the Chilkat Pascal wrapper via the C bridge DLL.
// Builds as a console application under Lazarus (FPC) or Delphi.

{$IFDEF FPC}
  {$MODE DELPHI}
{$ENDIF}
{$APPTYPE CONSOLE}

uses
  {$IFDEF UNIX}
  cthreads,
  {$ENDIF}
  SysUtils,
  CkDllLoader,
  Chilkat.Http,
  Chilkat.HttpResponse,
  Chilkat.Xml,
  Chilkat.CkDateTime;

// ---------------------------------------------------------------------------

procedure RunDemo;
var
  success: Boolean;
  http: THttp;
  xml: TXml;
  dt: TCkDateTime;
  resp: THttpResponse;

begin
  success := False;

  //  This example assumes the Chilkat API to have been previously unlocked.
  //  See Global Unlock Sample for sample code.

  http := THttp.Create;

  success := http.SetSslClientCertPfx('SSIN=12345678.acc.p12','p12_password');
  if (success = False) then
    begin
      WriteLn(http.LastErrorText);
      Exit;
    end;

  //  Create the following XML
  //  <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:be:fgov:ehealth:platformintegrationconsumertest:v1"
  //  xmlns:urn1="urn:be:fgov:ehealth:platformintegrationconsumertest:types:v1">
  //      <soapenv:Header/>
  //      <soapenv:Body>
  //          <urn:CheckConnectionRequest>
  //              <urn1:Message>Hello World</urn1:Message>
  //              <urn1:Timestamp>2014-12-30T15:29:03.157+01:00</urn1:Timestamp>
  //          </urn:CheckConnectionRequest>
  //      </soapenv:Body>
  //  </soapenv:Envelope>

  xml := TXml.Create;
  xml.Tag := 'soapenv:Envelope';
  xml.AddAttribute('xmlns:soapenv','http://schemas.xmlsoap.org/soap/envelope/');
  xml.AddAttribute('xmlns:urn','urn:be:fgov:ehealth:platformintegrationconsumertest:v1');
  xml.AddAttribute('xmlns:urn1','urn:be:fgov:ehealth:platformintegrationconsumertest:types:v1');
  xml.UpdateChildContent('soapenv:Header','');
  xml.UpdateChildContent('soapenv:Body|urn:CheckConnectionRequest|urn1:Message','Hello World');

  //  Create a timestamp with the current date/time in the following format: 2014-12-30T15:29:03.157+01:00
  dt := TCkDateTime.Create;
  dt.SetFromCurrentSystemTime();

  xml.UpdateChildContent('soapenv:Body|urn:CheckConnectionRequest|urn1:Timestamp',dt.GetAsTimestamp(True));

  http.SetRequestHeader('Content-Type','text/xml');

  resp := THttpResponse.Create;
  success := http.HttpStr('POST','https://services-acpt.ehealth.fgov.be/PlatformIntegrationConsumerTest/v1',xml.GetXml(),'utf-8','application/xml',resp);
  if (success = False) then
    begin
      WriteLn(http.LastErrorText);
      Exit;
    end;

  WriteLn(resp.BodyStr);
  WriteLn('response status code = ' + resp.StatusCode);

  //  A successful response is a 200 status code, with this sample response:
  //  
  //  <?xml version="1.0"?>
  //  <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
  //     <soapenv:Header xmlns:v1="urn:be:fgov:ehealth:platformintegrationconsumertest:v1" xmlns:v11="urn:be:fgov:ehealth:platformintegrationconsumertest:types:v1"/>
  //     <soapenv:Body xmlns:v1="urn:be:fgov:ehealth:platformintegrationconsumertest:v1" xmlns:v11="urn:be:fgov:ehealth:platformintegrationconsumertest:types:v1">
  //        <ic:CheckConnectionResponse xmlns:ic="urn:be:fgov:ehealth:platformintegrationconsumertest:v1" xmlns:type="urn:be:fgov:ehealth:platformintegrationconsumertest:types:v1">
  //           <type:Message>Hello World</type:Message>
  //           <type:Timestamp>2023-09-28T21:24:32.925+02:00</type:Timestamp>
  //           <type:AuthenticatedConsumer>anonymous</type:AuthenticatedConsumer>
  //        </ic:CheckConnectionResponse>
  //     </soapenv:Body>
  //  </soapenv:Envelope>


  http.Free;
  xml.Free;
  dt.Free;
  resp.Free;

end;

// ---------------------------------------------------------------------------

begin

  try
    RunDemo;
  except
    on E: Exception do
      WriteLn('Unhandled exception: ', E.ClassName, ': ', E.Message);
  end;

  WriteLn;
  {$IFDEF MSWINDOWS}
  WriteLn('Press Enter to exit...');
  ReadLn;
  {$ENDIF}
end.