Visual FoxPro
Visual FoxPro
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 Visual FoxPro Downloads
LOCAL lnSuccess
LOCAL loHttp
LOCAL loXml
LOCAL lcSoapEnvelope
LOCAL lcDomain
LOCAL lcPath
LOCAL loReq
LOCAL loCert
LOCAL loResp
LOCAL loXmlResp
lnSuccess = 0
* This example requires the Chilkat API to have been previously unlocked.
* See Global Unlock Sample for sample code.
loHttp = CreateObject('Chilkat.Http')
loXml = CreateObject('Chilkat.Xml')
lnSuccess = 0
* --------------------------------------------------------------------------------
* 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('Chilkat.HttpRequest')
loReq.HttpVerb = "POST"
loReq.SendCharset = 0
loReq.AddHeader("Content-Type","application/soap+xml; charset=utf-8")
loReq.Path = lcPath
lnSuccess = 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('Chilkat.Cert')
lnSuccess = loCert.LoadFromSmartcard("")
IF (lnSuccess = 0) THEN
? loCert.LastErrorText
RELEASE loHttp
RELEASE loXml
RELEASE loReq
RELEASE loCert
CANCEL
ENDIF
* Tell the Chilkat HTTP object to use the certificate for client authentication.
lnSuccess = loHttp.SetSslClientCert(loCert)
IF (lnSuccess = 0) THEN
? loHttp.LastErrorText
RELEASE loHttp
RELEASE loXml
RELEASE loReq
RELEASE loCert
CANCEL
ENDIF
loHttp.TlsVersion = "TLS 1.1"
loResp = CreateObject('Chilkat.HttpResponse')
lnSuccess = loHttp.HttpSReq(lcDomain,443,1,loReq,loResp)
IF (lnSuccess = 0) THEN
? loHttp.LastErrorText
RELEASE loHttp
RELEASE loXml
RELEASE loReq
RELEASE loCert
RELEASE loResp
CANCEL
ENDIF
loXmlResp = CreateObject('Chilkat.Xml')
lnSuccess = loXmlResp.LoadXml(loResp.BodyStr)
? loXmlResp.GetXml()
RELEASE loHttp
RELEASE loXml
RELEASE loReq
RELEASE loCert
RELEASE loResp
RELEASE loXmlResp