Chilkat
HOME
Android™
ASP
Visual Basic
VB.NET
C#
iOS (IPhone)
Objective-C
C++
C
MFC
Delphi
FoxPro
Java
Perl
PHP Extension
PHP ActiveX
Python
PowerShell
Ruby
SQL Server
VBScript
SOAP ExampleHow to send a SOAP request and get the XML response. 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 <CkHttpRequest.h> #include <CkHttp.h> #include <CkXml.h> #include <CkHttpResponse.h> void ChilkatSample(void) { CkHttpRequest req; 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; } // 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> CkXml soapReq; soapReq.put_Encoding("utf-8"); soapReq.put_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(); printf("%s\n",soapReq.getXml()); // Build an SOAP request. req.UseXmlHttp(soapReq.getXml()); req.put_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. const char * domain; long port; bool ssl; domain = "www.webservicex.net"; port = 80; ssl = false; CkHttpResponse *resp = 0; resp = http.SynchronousRequest(domain,port,ssl,req); if (resp == 0 ) { printf("%s\n",http.lastErrorText()); } else { // The XML response is in the BodyStr property of the response object: CkXml soapResp; 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: CkXml xmlResp; xmlResp.LoadXml(soapResp.content()); // Display the XML response: printf("%s\n",xmlResp.getXml()); } } |
© 2000-2010 Chilkat Software, Inc. All Rights Reserved.