Sample code for 30+ languages & platforms
Lianja

SOAP Request to fseservicetest.sanita.finanze.it with Smart Card Authentication (TS-CNS Italian Card)

See more HTTP Misc Examples

Demonstrates sending a SOAP request to fseservicetest.sanita.finanze.it with Smart Card (TS-CNS Italian Card).

Chilkat Lianja Downloads

Lianja
llSuccess = .F.

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

loHttp = createobject("CkHttp")
loXml = createobject("CkXml")

llSuccess = .F.

// --------------------------------------------------------------------------------
// Also see Chilkat's Online WSDL Code Generator
// to generate code and SOAP Request and Response XML for each operation in a WSDL.
// --------------------------------------------------------------------------------

// Create the SOAP envelope...
loXml.Tag = "soapenv:Envelope"
loXml.AddAttribute("xmlns:soapenv","http://schemas.xmlsoap.org/soap/envelope/")
loXml.AddAttribute("xmlns:stat","http://statoconsensirichiesta.xsd.fse.ini.finanze.it")
loXml.AddAttribute("xmlns:tip","http://tipodatistatoconsensi.xsd.fse.ini.finanze.it")
loXml.UpdateChildContent("soapenv:Header","")
loXml.UpdateChildContent("soapenv:Body|stat:StatoConsensiRichiesta|stat:IdentificativoUtente","XXXXXXAAABBBCCC")
loXml.UpdateChildContent("soapenv:Body|stat:StatoConsensiRichiesta|stat:pinCode","...")
loXml.UpdateChildContent("soapenv:Body|stat:StatoConsensiRichiesta|stat:IdentificativoOrganizzazione","999")
loXml.UpdateChildContent("soapenv:Body|stat:StatoConsensiRichiesta|stat:StrutturaUtente","123456789")
loXml.UpdateChildContent("soapenv:Body|stat:StatoConsensiRichiesta|stat:RuoloUtente","ZZZ")
loXml.UpdateChildContent("soapenv:Body|stat:StatoConsensiRichiesta|stat:ContestoOperativo","")
loXml.UpdateChildContent("soapenv:Body|stat:StatoConsensiRichiesta|stat:IdentificativoAssistitoGenitoreTutore","")
loXml.UpdateChildContent("soapenv:Body|stat:StatoConsensiRichiesta|stat:PresaInCarico","true")
loXml.UpdateChildContent("soapenv:Body|stat:StatoConsensiRichiesta|stat:TipoAttivita","READ")
loXml.UpdateChildContent("soapenv:Body|stat:StatoConsensiRichiesta|stat:IdentificativoAssistitoConsenso","ABCDEFGHIJKLM")
lcSoapEnvelope = loXml.GetXml()

lcDomain = "fseservicetest.sanita.finanze.it"
lcPath = "/FseInsServicesWeb/services/fseStatoConsensi"

loReq = createobject("CkHttpRequest")
loReq.HttpVerb = "POST"
loReq.SendCharset = .F.
loReq.AddHeader("Content-Type","application/soap+xml; charset=utf-8")
loReq.Path = lcPath
llSuccess = loReq.LoadBodyFromString(lcSoapEnvelope,"utf-8")

// Load the default certificate from the smartcard currently in the reader.
// (This assumes only one reader with one smartcard containing one certificate.
// If the situation is more complex, you can do it with Chilkat, but it requires
// using the Chilkat certificate store object to get the desired certificate
// from the desired smart card.)
// 
// Note: This is for Windows-only.
loCert = createobject("CkCert")
llSuccess = loCert.LoadFromSmartcard("")
if (llSuccess = .F.) then
    ? loCert.LastErrorText
    release loHttp
    release loXml
    release loReq
    release loCert
    return
endif

// Tell the Chilkat HTTP object to use the certificate for client authentication.
llSuccess = loHttp.SetSslClientCert(loCert)
if (llSuccess = .F.) then
    ? loHttp.LastErrorText
    release loHttp
    release loXml
    release loReq
    release loCert
    return
endif

loHttp.TlsVersion = "TLS 1.1"

loResp = createobject("CkHttpResponse")
llSuccess = loHttp.HttpSReq(lcDomain,443,.T.,loReq,loResp)
if (llSuccess = .F.) then
    ? loHttp.LastErrorText
    release loHttp
    release loXml
    release loReq
    release loCert
    release loResp
    return
endif

loXmlResp = createobject("CkXml")
llSuccess = loXmlResp.LoadXml(loResp.BodyStr)
? loXmlResp.GetXml()


release loHttp
release loXml
release loReq
release loCert
release loResp
release loXmlResp