Delphi Examples

ChilkatHOMEASPVisual BasicVB.NETC#Visual C++CMFCDelphiFoxProJavaPerlPHPPythonRubySQL ServerVBScript

Delphi Examples

Bounced Mail
Character Encoding
Digital Certificates
Digital Signatures
Email
FTP
HTML-to-XML
HTTP
IMAP
Encryption
MHT / HTML Email
RSA Encryption
S/MIME
Socket
Spider
String
Tar
Upload
XML
XMP
Zip Compression

More Examples...
Byte Array
Email Object
POP3
SMTP
RSS
Atom
Self-Extractor
Service
PPMD
Deflate
DH Key Exchange
DSA
SSH Key
SSH
SSH Tunnel
SFTP

Unreleased...
Bzip2
LZW
Bz2
Icon

Type Conversion

 

Article: Understanding COM References in Delphi

SOAP Example

How to send a SOAP request and get the XML response.

Download Chilkat XML ActiveX

Download Chilkat HTTP ActiveX

uses
    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
    Dialogs, StdCtrls,
    CHILKATXMLLib_TLB,
    CHILKATHTTPLib_TLB,
    OleCtrls;

...

procedure TForm1.Button1Click(Sender: TObject);
var
req: TChilkatHttpRequest;
http: TChilkatHttp;
success: Integer;
soapReq: CHILKATXMLLib_TLB.IChilkatXml;
domain: String;
port: Integer;
ssl: Integer;
resp: IChilkatHttpResponse;
soapResp: CHILKATXMLLib_TLB.IChilkatXml;
xmlResp: CHILKATXMLLib_TLB.IChilkatXml;

begin
req := TChilkatHttpRequest.Create(Self);
http := TChilkatHttp.Create(Self);

//  Any string unlocks the component for the 1st 30-days.
success := http.UnlockComponent('Anything for 30-day trial');
if (success <> 1) then
  begin
    ShowMessage(http.LastErrorText);
    Exit;
  end;

//  Build this XML SOAP request:
//  <?xml version="1.0" encoding="utf-8"?>
//  <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
//  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
//  xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
//    <soap:Body>
//      <GetQuote xmlns="http://www.webserviceX.NET/">
//        <symbol>string</symbol>
//     </GetQuote>
//    </soap:Body>
//  </soap:Envelope>
soapReq := TChilkatXml.Create(Self).ControlInterface;
soapReq.Encoding := 'utf-8';
soapReq.Tag := 'soap:Envelope';
soapReq.AddAttribute('xmlns:xsi','http://www.w3.org/2001/XMLSchema-instance');
soapReq.AddAttribute('xmlns:xsd','http://www.w3.org/2001/XMLSchema');
soapReq.AddAttribute('xmlns:soap','http://schemas.xmlsoap.org/soap/envelope/');

soapReq.NewChild2('soap:Body','');
soapReq.FirstChild2();
soapReq.NewChild2('GetQuote','');
soapReq.FirstChild2();
soapReq.AddAttribute('xmlns','http://www.webserviceX.NET/');
soapReq.NewChild2('symbol','MSFT');
soapReq.GetRoot2();

Memo1.Lines.Add(soapReq.GetXml());

//  Build an SOAP request.
req.UseXmlHttp(soapReq.GetXml());
req.Path := '/stockquote.asmx';

req.AddHeader('SOAPAction','http://www.webserviceX.NET/GetQuote');

//  Send the HTTP POST and get the response.  Note: This is a blocking call.
//  The method does not return until the full HTTP response is received.

domain := 'www.webservicex.net';
port := 80;
ssl := 0;

resp := http.SynchronousRequest(domain,port,ssl,req.DefaultInterface);
if (resp = nil ) then
  begin
    Memo1.Lines.Add(http.LastErrorText);
  end
else
  begin
    //  The XML response is in the BodyStr property of the response object:
    soapResp := TChilkatXml.Create(Self).ControlInterface;
    soapResp.LoadXml(resp.BodyStr);

    //  The response will look like this:
    //  <?xml version="1.0" encoding="utf-8"?>
    //  <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    //  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    //  xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
    //    <soap:Body>
    //      <GetQuoteResponse xmlns="http://www.webserviceX.NET/">
    //        <GetQuoteResult>string</GetQuoteResult>
    //      </GetQuoteResponse>
    //    </soap:Body>
    //  </soap:Envelope>
    //  Navigate to soap:Body
    soapResp.FirstChild2();
    //  Navigate to GetQuoteResponse
    soapResp.FirstChild2();
    //  Navigate to GetQuoteResult
    soapResp.FirstChild2();

    //  The actual XML response is the data within GetQuoteResult:
    xmlResp := TChilkatXml.Create(Self).ControlInterface;
    xmlResp.LoadXml(soapResp.Content);

    //  Display the XML response:
    Memo1.Lines.Add(xmlResp.GetXml());

  end;
end;

 

Need a specific example? Send a request to support@chilkatsoft.com

© 2000-2008 Chilkat Software, Inc. All Rights Reserved.

Mail Component · .NET Email Component · XML Parser