Sample code for 30+ languages & platforms
PureBasic

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 PureBasic Downloads

PureBasic
IncludeFile "CkHttpResponse.pb"
IncludeFile "CkHttp.pb"
IncludeFile "CkXml.pb"
IncludeFile "CkDateTime.pb"

Procedure ChilkatExample()

    success.i = 0

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

    http.i = CkHttp::ckCreate()
    If http.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    success = CkHttp::ckSetSslClientCertPfx(http,"SSIN=12345678.acc.p12","p12_password")
    If success = 0
        Debug CkHttp::ckLastErrorText(http)
        CkHttp::ckDispose(http)
        ProcedureReturn
    EndIf

    ; 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.i = CkXml::ckCreate()
    If xml.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    CkXml::setCkTag(xml, "soapenv:Envelope")
    CkXml::ckAddAttribute(xml,"xmlns:soapenv","http://schemas.xmlsoap.org/soap/envelope/")
    CkXml::ckAddAttribute(xml,"xmlns:urn","urn:be:fgov:ehealth:platformintegrationconsumertest:v1")
    CkXml::ckAddAttribute(xml,"xmlns:urn1","urn:be:fgov:ehealth:platformintegrationconsumertest:types:v1")
    CkXml::ckUpdateChildContent(xml,"soapenv:Header","")
    CkXml::ckUpdateChildContent(xml,"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.i = CkDateTime::ckCreate()
    If dt.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    CkDateTime::ckSetFromCurrentSystemTime(dt)

    CkXml::ckUpdateChildContent(xml,"soapenv:Body|urn:CheckConnectionRequest|urn1:Timestamp",CkDateTime::ckGetAsTimestamp(dt,1))

    CkHttp::ckSetRequestHeader(http,"Content-Type","text/xml")

    resp.i = CkHttpResponse::ckCreate()
    If resp.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    success = CkHttp::ckHttpStr(http,"POST","https://services-acpt.ehealth.fgov.be/PlatformIntegrationConsumerTest/v1",CkXml::ckGetXml(xml),"utf-8","application/xml",resp)
    If success = 0
        Debug CkHttp::ckLastErrorText(http)
        CkHttp::ckDispose(http)
        CkXml::ckDispose(xml)
        CkDateTime::ckDispose(dt)
        CkHttpResponse::ckDispose(resp)
        ProcedureReturn
    EndIf

    Debug CkHttpResponse::ckBodyStr(resp)
    Debug "response status code = " + Str(CkHttpResponse::ckStatusCode(resp))

    ; 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>


    CkHttp::ckDispose(http)
    CkXml::ckDispose(xml)
    CkDateTime::ckDispose(dt)
    CkHttpResponse::ckDispose(resp)


    ProcedureReturn
EndProcedure