Pascal (Lazarus/Delphi)
Pascal (Lazarus/Delphi)
palena.sii.cl getSeed SOAP Request
See more SII Chile Examples
Demonstrates how to call getSeed SOAP request at palena.sii.clChilkat Pascal (Lazarus/Delphi) Downloads
program ChilkatDemo;
// Demonstrates using the Chilkat Pascal wrapper via the C bridge DLL.
// Builds as a console application under Lazarus (FPC) or Delphi.
{$IFDEF FPC}
{$MODE DELPHI}
{$ENDIF}
{$APPTYPE CONSOLE}
uses
{$IFDEF UNIX}
cthreads,
{$ENDIF}
SysUtils,
CkDllLoader,
Chilkat.Http,
Chilkat.HttpResponse,
Chilkat.Xml;
// ---------------------------------------------------------------------------
procedure RunDemo;
var
success: Boolean;
http: THttp;
responseStatusCode: Integer;
endPoint: string;
xml: TXml;
resp: THttpResponse;
xmlResp: TXml;
embeddedXml: string;
xml2: TXml;
seed: string;
begin
success := False;
http := THttp.Create;
// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
http.UncommonOptions := 'AllowEmptyHeaders';
http.SetRequestHeader('SOAPAction','');
// The endpoint for this soap service is:
endPoint := 'https://palena.sii.cl/DTEWS/CrSeed.jws';
// Send the following SOAP XML
// <soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:def="http://DefaultNamespace">
// <soapenv:Header/>
// <soapenv:Body>
// <def:getSeed soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
// </soapenv:Body>
// </soapenv:Envelope>
xml := TXml.Create;
xml.Tag := 'soapenv:Envelope';
xml.AddAttribute('xmlns:xsi','http://www.w3.org/2001/XMLSchema-instance');
xml.AddAttribute('xmlns:xsd','http://www.w3.org/2001/XMLSchema');
xml.AddAttribute('xmlns:soapenv','http://schemas.xmlsoap.org/soap/envelope/');
xml.AddAttribute('xmlns:def','http://DefaultNamespace');
xml.UpdateChildContent('soapenv:Header','');
xml.UpdateAttrAt('soapenv:Body|def:getSeed',True,'soapenv:encodingStyle','http://schemas.xmlsoap.org/soap/encoding/');
resp := THttpResponse.Create;
success := http.HttpStr('POST',endPoint,xml.GetXml(),'utf-8','text/xml',resp);
if (success = False) then
begin
WriteLn(http.LastErrorText);
Exit;
end;
responseStatusCode := resp.StatusCode;
WriteLn('Response Status Code: ' + responseStatusCode);
// You may examine the exact HTTP header sent with the POST like this:
WriteLn('LastHeader:');
WriteLn(http.LastHeader);
// Examine the XML returned by the web service:
WriteLn('XML Response:');
xmlResp := TXml.Create;
xmlResp.LoadXml(resp.BodyStr);
WriteLn(xmlResp.GetXml());
// Use this online tool to generate parsing code from response XML:
// Generate Parsing Code from XML
// The response is:
// <?xml version="1.0" encoding="UTF-8"?>
// <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
// <soapenv:Body>
// <ns1:getSeedResponse soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="http://DefaultNamespace">
// <ns1:getSeedReturn xsi:type="xsd:string"><?xml version="1.0" encoding="UTF-8"?><SII:RESPUESTA xmlns:SII="http://www.sii.cl/XMLSchema"><SII:RESP_BODY><SEMILLA>039159253918</SEMILLA></SII:RESP_BODY><SII:RESP_HDR><ESTADO>00</ESTADO></SII:RESP_HDR></SII:RESPUESTA></ns1:getSeedReturn>
// </ns1:getSeedResponse>
// </soapenv:Body>
// </soapenv:Envelope>
// Get the XML contained in the getSeedReturn element:
embeddedXml := xmlResp.GetChildContent('soapenv:Body|ns1:getSeedResponse|ns1:getSeedReturn');
WriteLn(embeddedXml);
// The embedded XML is:
// <?xml version="1.0" encoding="UTF-8"?>
// <SII:RESPUESTA xmlns:SII="http://www.sii.cl/XMLSchema">
// <SII:RESP_BODY>
// <SEMILLA>039159397998</SEMILLA>
// </SII:RESP_BODY>
// <SII:RESP_HDR>
// <ESTADO>00</ESTADO>
// </SII:RESP_HDR>
// </SII:RESPUESTA>
// Get the seed:
xml2 := TXml.Create;
xml2.LoadXml(embeddedXml);
seed := xml2.GetChildContent('SII:RESP_BODY|SEMILLA');
WriteLn('seed = ' + seed);
// --------------------------------------------------------------------------------
// Also see Chilkat's Online WSDL Code Generator
// to generate code and SOAP Request and Response XML for each operation in a WSDL.
// --------------------------------------------------------------------------------
http.Free;
xml.Free;
resp.Free;
xmlResp.Free;
xml2.Free;
end;
// ---------------------------------------------------------------------------
begin
try
RunDemo;
except
on E: Exception do
WriteLn('Unhandled exception: ', E.ClassName, ': ', E.Message);
end;
WriteLn;
{$IFDEF MSWINDOWS}
WriteLn('Press Enter to exit...');
ReadLn;
{$ENDIF}
end.