![]() |
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
(Delphi DLL) 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.
uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Http, HttpRequest, HttpResponse, Xml; ... procedure TForm1.Button1Click(Sender: TObject); var success: Boolean; http: HCkHttp; soapXml: HCkXml; req: HCkHttpRequest; resp: HCkHttpResponse; xmlResponse: HCkXml; begin success := False; // 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); Memo1.Lines.Add(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 := CkHttpResponse_Create(); success := CkHttp_HttpSReq(http,'wsf.cdyne.com',80,False,req,resp); if (success = False) then begin Memo1.Lines.Add(CkHttp__lastErrorText(http)); Exit; end; xmlResponse := CkXml_Create(); success := CkXml_LoadXml(xmlResponse,CkHttpResponse__bodyStr(resp)); Memo1.Lines.Add(CkXml__getXml(xmlResponse)); CkHttp_Dispose(http); CkXml_Dispose(soapXml); CkHttpRequest_Dispose(req); CkHttpResponse_Dispose(resp); CkXml_Dispose(xmlResponse); end; |
© 2000-2025 Chilkat Software, Inc. All Rights Reserved.