Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(C++) SOAP Request to fseservicetest.sanita.finanze.it with Smart Card Authentication (TS-CNS Italian Card)Demonstrates sending a SOAP request to fseservicetest.sanita.finanze.it with Smart Card (TS-CNS Italian Card).
#include <CkHttp.h> #include <CkXml.h> #include <CkHttpRequest.h> #include <CkCert.h> #include <CkHttpResponse.h> void ChilkatSample(void) { // This example requires the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. CkHttp http; CkXml xml; bool success = false; // -------------------------------------------------------------------------------- // 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... xml.put_Tag("soapenv:Envelope"); xml.AddAttribute("xmlns:soapenv","http://schemas.xmlsoap.org/soap/envelope/"); xml.AddAttribute("xmlns:stat","http://statoconsensirichiesta.xsd.fse.ini.finanze.it"); xml.AddAttribute("xmlns:tip","http://tipodatistatoconsensi.xsd.fse.ini.finanze.it"); xml.UpdateChildContent("soapenv:Header",""); xml.UpdateChildContent("soapenv:Body|stat:StatoConsensiRichiesta|stat:IdentificativoUtente","XXXXXXAAABBBCCC"); xml.UpdateChildContent("soapenv:Body|stat:StatoConsensiRichiesta|stat:pinCode","..."); xml.UpdateChildContent("soapenv:Body|stat:StatoConsensiRichiesta|stat:IdentificativoOrganizzazione","999"); xml.UpdateChildContent("soapenv:Body|stat:StatoConsensiRichiesta|stat:StrutturaUtente","123456789"); xml.UpdateChildContent("soapenv:Body|stat:StatoConsensiRichiesta|stat:RuoloUtente","ZZZ"); xml.UpdateChildContent("soapenv:Body|stat:StatoConsensiRichiesta|stat:ContestoOperativo",""); xml.UpdateChildContent("soapenv:Body|stat:StatoConsensiRichiesta|stat:IdentificativoAssistitoGenitoreTutore",""); xml.UpdateChildContent("soapenv:Body|stat:StatoConsensiRichiesta|stat:PresaInCarico","true"); xml.UpdateChildContent("soapenv:Body|stat:StatoConsensiRichiesta|stat:TipoAttivita","READ"); xml.UpdateChildContent("soapenv:Body|stat:StatoConsensiRichiesta|stat:IdentificativoAssistitoConsenso","ABCDEFGHIJKLM"); const char *soapEnvelope = xml.getXml(); const char *domain = "fseservicetest.sanita.finanze.it"; const char *path = "/FseInsServicesWeb/services/fseStatoConsensi"; CkHttpRequest req; req.put_HttpVerb("POST"); req.put_SendCharset(false); req.AddHeader("Content-Type","application/soap+xml; charset=utf-8"); req.put_Path(path); success = req.LoadBodyFromString(soapEnvelope,"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. CkCert cert; success = cert.LoadFromSmartcard(""); if (success == false) { std::cout << cert.lastErrorText() << "\r\n"; return; } // Tell the Chilkat HTTP object to use the certificate for client authentication. success = http.SetSslClientCert(cert); if (success == false) { std::cout << http.lastErrorText() << "\r\n"; return; } http.put_TlsVersion("TLS 1.1"); CkHttpResponse *resp = http.SynchronousRequest(domain,443,true,req); if (http.get_LastMethodSuccess() == false) { std::cout << http.lastErrorText() << "\r\n"; return; } CkXml xmlResp; success = xmlResp.LoadXml(resp->bodyStr()); std::cout << xmlResp.getXml() << "\r\n"; delete resp; } |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.