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
(Delphi ActiveX) 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).
uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Chilkat_TLB; ... procedure TForm1.Button1Click(Sender: TObject); var http: TChilkatHttp; xml: TChilkatXml; success: Integer; soapEnvelope: WideString; domain: WideString; path: WideString; req: TChilkatHttpRequest; cert: TChilkatCert; resp: IChilkatHttpResponse; xmlResp: TChilkatXml; begin // This example requires the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. http := TChilkatHttp.Create(Self); xml := TChilkatXml.Create(Self); success := 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... xml.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'); soapEnvelope := xml.GetXml(); domain := 'fseservicetest.sanita.finanze.it'; path := '/FseInsServicesWeb/services/fseStatoConsensi'; req := TChilkatHttpRequest.Create(Self); req.HttpVerb := 'POST'; req.SendCharset := 0; req.AddHeader('Content-Type','application/soap+xml; charset=utf-8'); req.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. cert := TChilkatCert.Create(Self); success := cert.LoadFromSmartcard(''); if (success = 0) then begin Memo1.Lines.Add(cert.LastErrorText); Exit; end; // Tell the Chilkat HTTP object to use the certificate for client authentication. success := http.SetSslClientCert(cert.ControlInterface); if (success = 0) then begin Memo1.Lines.Add(http.LastErrorText); Exit; end; http.TlsVersion := 'TLS 1.1'; resp := http.SynchronousRequest(domain,443,1,req.ControlInterface); if (http.LastMethodSuccess = 0) then begin Memo1.Lines.Add(http.LastErrorText); Exit; end; xmlResp := TChilkatXml.Create(Self); success := xmlResp.LoadXml(resp.BodyStr); Memo1.Lines.Add(xmlResp.GetXml()); end; |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.