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