![]() |
Chilkat HOME Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi DLL Go Java Node.js Objective-C PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(PureBasic) 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. Note: This example requires Chilkat v11.0.0 or greater.
IncludeFile "CkHttpResponse.pb" IncludeFile "CkHttp.pb" IncludeFile "CkXml.pb" IncludeFile "CkHttpRequest.pb" Procedure ChilkatExample() success.i = 0 ; 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.i = CkHttp::ckCreate() If http.i = 0 Debug "Failed to create object." ProcedureReturn EndIf soapXml.i = CkXml::ckCreate() If soapXml.i = 0 Debug "Failed to create object." ProcedureReturn EndIf CkXml::setCkTag(soapXml, "soap12:Envelope") success = CkXml::ckAddAttribute(soapXml,"xmlns:xsi","http://www.w3.org/2001/XMLSchema-instance") success = CkXml::ckAddAttribute(soapXml,"xmlns:xsd","http://www.w3.org/2001/XMLSchema") success = CkXml::ckAddAttribute(soapXml,"xmlns:soap12","http://www.w3.org/2003/05/soap-envelope") CkXml::ckNewChild2(soapXml,"soap12:Body","") success = CkXml::ckGetChild2(soapXml,0) CkXml::ckNewChild2(soapXml,"GetCityWeatherByZIP","") success = CkXml::ckGetChild2(soapXml,0) success = CkXml::ckAddAttribute(soapXml,"xmlns","http://ws.cdyne.com/WeatherWS/") CkXml::ckNewChild2(soapXml,"ZIP","60187") CkXml::ckGetRoot2(soapXml) Debug CkXml::ckGetXml(soapXml) req.i = CkHttpRequest::ckCreate() If req.i = 0 Debug "Failed to create object." ProcedureReturn EndIf CkHttpRequest::setCkHttpVerb(req, "POST") CkHttpRequest::setCkSendCharset(req, 0) CkHttpRequest::ckAddHeader(req,"Content-Type","application/soap+xml; charset=utf-8") CkHttpRequest::ckAddHeader(req,"SOAPAction","http://ws.cdyne.com/WeatherWS/GetCityWeatherByZIP") CkHttpRequest::setCkPath(req, "/WeatherWS/Weather.asmx") success = CkHttpRequest::ckLoadBodyFromString(req,CkXml::ckGetXml(soapXml),"utf-8") CkHttp::setCkFollowRedirects(http, 1) resp.i = CkHttpResponse::ckCreate() If resp.i = 0 Debug "Failed to create object." ProcedureReturn EndIf success = CkHttp::ckHttpSReq(http,"wsf.cdyne.com",80,0,req,resp) If success = 0 Debug CkHttp::ckLastErrorText(http) CkHttp::ckDispose(http) CkXml::ckDispose(soapXml) CkHttpRequest::ckDispose(req) CkHttpResponse::ckDispose(resp) ProcedureReturn EndIf xmlResponse.i = CkXml::ckCreate() If xmlResponse.i = 0 Debug "Failed to create object." ProcedureReturn EndIf success = CkXml::ckLoadXml(xmlResponse,CkHttpResponse::ckBodyStr(resp)) Debug CkXml::ckGetXml(xmlResponse) CkHttp::ckDispose(http) CkXml::ckDispose(soapXml) CkHttpRequest::ckDispose(req) CkHttpResponse::ckDispose(resp) CkXml::ckDispose(xmlResponse) ProcedureReturn EndProcedure |
© 2000-2025 Chilkat Software, Inc. All Rights Reserved.