Visual C++ Examples

ChilkatHOMEAndroid™ASPVisual BasicVB.NETC#iOS (IPhone)Objective-CC++CMFCDelphiFoxProJavaPerl
PHP ExtensionPHP ActiveXPythonPowerShellRubySQL ServerVBScript

C++ Examples

CkString
Byte Array
Bounced Mail
Bz2
Character Encoding
CSV
DH Key Exchange
DKIM/DomainKeys
Digital Certificates
Digital Signatures
DSA
Email
Email Object
Encryption
FTP
HTML Conversion
HTTP
IMAP
MHT / HTML Email
POP3
RSA
S/MIME
SMTP
Socket
Spider
SSH Key
SSH
SSH Tunnel
SFTP
Tar
Upload
XML
XMP
Zip Compression


More Examples...
Amazon S3
NTLM
FileAccess
RSS
Atom
Self-Extractor
Service
PPMD
Deflate
Bzip2
LZW

 

 

 

 

 

 

 

 

SOAP Web Service (HTTP POST)

Demonstrates how to call PostXml to call a SOAP web service.

Downloads:

MS Windows Visual C/C++ Libraries
Linux/CentOS C/C++ Libraries
MAC OS X C/C++ Libraries
Solaris C/C++ Libraries
C++ Builder Libraries
#include <CkHttp.h>
#include <CkXml.h>
#include <CkHttpResponse.h>

void ChilkatSample(void)
    {

    CkHttp http;

    bool success;

    //  Any string unlocks the component for the 1st 30-days.
    success = http.UnlockComponent("Anything for 30-day trial");
    if (success != true) {
        printf("%s\n",http.lastErrorText());
        return;
    }

    //  This example uses a live web service at:
    //  http://www.webservicex.net/uklocation.asmx
    //  It gets the UK town,Postcode and County by Postcode(First Section of Post Code)

    //  The SOAP XML 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>
    //      <GetUKLocationByPostCode xmlns="http://www.webserviceX.NET">
    //        <PostCode>string</PostCode>
    //      </GetUKLocationByPostCode>
    //    </soap:Body>
    //  </soap:Envelope>

    //  For this example's sake, we'll load the XML from a file.  We'll test using PostCode "E3".
    //  The SOAP XML for this example may be downloaded from:
    //  http://www.chilkatsoft.com/testData/ukPostCodeSoap.xml
    CkXml xml;
    success = xml.LoadXmlFile("ukPostCodeSoap.xml");
    if (success != true) {
        printf("%s\n",xml.lastErrorText());
        return;
    }

    const char * strXml;
    strXml = xml.getXml();

    CkHttpResponse *resp = 0;
    long responseStatusCode;

    //  We'll need to add this in the HTTP header:
    //  SOAPAction: "http://www.webserviceX.NET/GetUKLocationByPostCode"
    http.SetRequestHeader("SOAPAction","http://www.webserviceX.NET/GetUKLocationByPostCode");

    //  Some services expect the content-type in the HTTP header to be "application/xml" while
    //  other expect text/xml.  The default sent by Chilkat is "application/xml", but this web service
    //  expects "text/xml".  Therefore, change the content-type:
    http.SetRequestHeader("Content-Type","text/xml; charset=utf-8");

    //  The endpoint for this soap service is:
    const char * endPoint;
    endPoint = "http://www.webservicex.net/uklocation.asmx";

    //  Note: This particular web service was live and functioning at the time this example
    //  was written.  It is possible that as time progresses, this web service will no longer
    //  be availble...
    resp = http.PostXml(endPoint,strXml,"utf-8");
    if (resp == 0 ) {
        printf("%s\n",http.lastErrorText());

        printf("LastHeader:\n");
        printf("%s\n",http.lastHeader());
    }
    else {

        responseStatusCode = resp->get_StatusCode();
        //  You may wish to verify that the responseStatusCode equals 200...
        printf("Response Status Code: %d\n",responseStatusCode);

        //  You may examine the exact HTTP header sent with the POST like this:
        printf("LastHeader:\n");
        printf("%s\n",http.lastHeader());

        //  Examine the XML returned by the web service:
        printf("XML Response:\n");
        CkXml xmlResp;
        success = xmlResp.LoadXml(resp->get_BodyStr());
        //  Assume the LoadXml is successful...
        //  Get rid of the SOAP wrappings and get to the meat of this particular response.
        //  The TagContent method returns the content of the 1st node in the XML document
        //  having a specific tag:
        const char * unwrappedXml;
        unwrappedXml = xmlResp.tagContent("GetUKLocationByPostCodeResult");
        printf("%s\n",unwrappedXml);

        //  The unwrapped XML could be loaded into an XML object and parsed...
        CkXml xmlMeat;
        success = xmlMeat.LoadXml(unwrappedXml);

        //  ...
    }


    }

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

Mail Component · .NET Mail Component · XML Parser