|  |  |  | ProLinga-Soap Project |  | 
|---|
A very basic example program using the Soap Client Library, so it can send a request to and receive a response from a Web Services looks like this:
#include <prolinga/SoapClient.hpp>
int main()
{
        /* Create a request */
        xmlDocPtr docReq;
        xmlNodePtr curReq;
        docReq = xmlNewDoc((const xmlChar *)"1.0");
        docReq->children = xmlNewDocNode(docReq, NULL, (const xmlChar *)"ProLinga", NULL);
        curReq = xmlDocGetRootElement(docReq);
        xmlNewTextChild (curReq, NULL, (const xmlChar *)"String", (const xmlChar *)"This is a simple request.");
        /* Send of request and get response */
        PlSoapClient sclient;
        xmlDocPtr docRes;
        docRes = sclient.soapCall(docReq, "http://localhost:8020",0);
        /* Print response */
        xmlNodePtr curRes;
        xmlBufferPtr bufRes;
        bufRes = xmlBufferCreate();
        curRes = xmlDocGetRootElement(docRes);
        xmlNodeDump(bufRes, docRes, curRes, 0, 1);
        printf("%s\n", (char *)xmlBufferContent(bufRes));
        xmlBufferFree(bufRes);
	/* Free */
	xmlFreeDoc(docReq);
	xmlFreeDoc(docRes);
        /* Return */
        return 0;
}
This function creates a small XML document and sends that to TCP port 8020 of localhost. The request gets processed and a response comes back in XML format. This is then printed to the standard output.
To test these 2 examples, start the service logic first in one terminal screen and then execute the client logic from another terminal screen.
To compile the program, use the following command:
g++ soap_c_test.cpp -o soap_c_test `pkg-config --cflags --libs prolinga-soapclient`
You may need to set the environment variable PKG_CONFIG_PATH to 
      point to the directory where prolinga-soapclient.pc is located. By default this is
      directory /usr/local/lib/pkgconfig on GNU/Linux for
      example.
      
You can also use a more traditional command as:
g++ soap_c_test.cpp -o soap_c_test -I/usr/local/include/ -L/usr/local/lib -lprolingasoapclient -lxml2 -lz
The Soap library prolingasoap contains both the 
      Service as the Client class, so client calls can be made as well.
| << ProLinga-Soap Programming Notes | Download ProLinga-Soap >> |