Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(C) HTTP SOAP 1.2 Request and Response using POSTDemonstrates a working SOAP 1.2 request and response using POST with a live server. You may try running this example with the URLs and data provided. See http://wsf.cdyne.com/WeatherWS/Weather.asmx?op=GetCityWeatherByZIP for details. Note: This example is correct in theory, but no longer works for live testing because the SOAP service provider (cdyne.com) has made changes or discontinued the free service.
#include <C_CkHttp.h> #include <C_CkXml.h> #include <C_CkHttpRequest.h> #include <C_CkHttpResponse.h> void ChilkatSample(void) { HCkHttp http; HCkXml soapXml; BOOL success; HCkHttpRequest req; HCkHttpResponse resp; HCkXml xmlResponse; // This example requires the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. // -------------------------------------------------------------------------------- // Also see Chilkat's Online WSDL Code Generator // to generate code and SOAP Request and Response XML for each operation in a WSDL. // -------------------------------------------------------------------------------- http = CkHttp_Create(); soapXml = CkXml_Create(); CkXml_putTag(soapXml,"soap12:Envelope"); success = CkXml_AddAttribute(soapXml,"xmlns:xsi","http://www.w3.org/2001/XMLSchema-instance"); success = CkXml_AddAttribute(soapXml,"xmlns:xsd","http://www.w3.org/2001/XMLSchema"); success = CkXml_AddAttribute(soapXml,"xmlns:soap12","http://www.w3.org/2003/05/soap-envelope"); CkXml_NewChild2(soapXml,"soap12:Body",""); success = CkXml_GetChild2(soapXml,0); CkXml_NewChild2(soapXml,"GetCityWeatherByZIP",""); success = CkXml_GetChild2(soapXml,0); success = CkXml_AddAttribute(soapXml,"xmlns","http://ws.cdyne.com/WeatherWS/"); CkXml_NewChild2(soapXml,"ZIP","60187"); CkXml_GetRoot2(soapXml); printf("%s\n",CkXml_getXml(soapXml)); req = CkHttpRequest_Create(); CkHttpRequest_putHttpVerb(req,"POST"); CkHttpRequest_putSendCharset(req,FALSE); CkHttpRequest_AddHeader(req,"Content-Type","application/soap+xml; charset=utf-8"); CkHttpRequest_AddHeader(req,"SOAPAction","http://ws.cdyne.com/WeatherWS/GetCityWeatherByZIP"); CkHttpRequest_putPath(req,"/WeatherWS/Weather.asmx"); success = CkHttpRequest_LoadBodyFromString(req,CkXml_getXml(soapXml),"utf-8"); CkHttp_putFollowRedirects(http,TRUE); resp = CkHttp_SynchronousRequest(http,"wsf.cdyne.com",80,FALSE,req); if (CkHttp_getLastMethodSuccess(http) == FALSE) { printf("%s\n",CkHttp_lastErrorText(http)); } else { xmlResponse = CkXml_Create(); success = CkXml_LoadXml(xmlResponse,CkHttpResponse_bodyStr(resp)); printf("%s\n",CkXml_getXml(xmlResponse)); CkHttpResponse_Dispose(resp); } CkHttp_Dispose(http); CkXml_Dispose(soapXml); CkHttpRequest_Dispose(req); CkXml_Dispose(xmlResponse); } |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.